成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS 支付寶支付開發(新版)

移動開發
本文為以前做的項目總結,由于相關支付 SDK 迭代,原文已經不滿足需求,故作如下更新,供大家參考,另外增加常見問題總結。

1. 介紹

本文為以前做的項目總結,由于相關支付 SDK 迭代,原文已經不滿足需求,故作如下更新,供大家參考,另外增加常見問題總結。

今天我們就主要介紹一下支付寶支付,其他支付介紹后面會盡快更新出來。

在做支付之前,在網上也查尋了資料,大多都說,支付接入坑太多,微信坑最多,銀聯文檔太復雜。

其實如果接入的多的話,那些套路都可以繞著走。

網上的經驗什么的大都是比較老的,比較新的能用到的文章不多(但是好文章還是有的,對我幫助也很大),下面給大家詳細介紹一下,幫助大家繞開坑。

2. 交互流程

建議先把開發文檔仔仔細細看一遍,一定要看,剛開始的時候沒有老老實實地看完,結果遇到很多的坑,浪費的挺多的時間的,所以建議一定要好好看看,特別是交互流程這一部分。

2.1 功能流程

2.2 數據交互

支付寶支付的功能流程相比較微信支付來說簡單的很,如上面兩張圖展示的,我們的 App(也就是商戶客戶端)所做的大概只有三個步驟:

  • 生成訂單
  • 調用支付寶接口,發送訂單
  • 返回訂單支付結果并處理

3. 下載支付寶 SDK

支付寶業務眾多,真想找到想要的支付sdk還是要費一番功夫的,這里給出了最新的 SDK 地址

注意的是下載出來的 SDK 包里面并沒有傳說中的開發文檔,需要其他地方找或者看網頁上的。

公鑰、私鑰、PID、sellerID、key這些東西的用途和獲取方式在文檔上都有詳細的說明,這里不再贅述,一定要把概念分清楚再去做,不然一會就亂了。如果遇到問題的話咱們可以再一起探討。

4. 導入庫集成SDK

4.1 導入文件和關鍵庫

通過 CocoaPods 導入

  1. pod  'AlipaySDK-iOS'  

手動導入

官方 demo 截圖

打開 iOS 工程,新版本 SDK 文件 Order 文件,你需要復制粘貼到自己工程里的有:

  • AlipaySDK.framework
  • AlipaySDK.bundle
  • Until 文件夾
  • openssl 文件夾
  • libcrypto.a 和 libssl.a

上面的一部分文件在打開的項目中是看不到的,需要打開項目文件夾找到。

在 Build Phases 選項卡的 Link Binary With Libraries 中,增加以下依賴:

 

其中,需要注意的是:

  • 如果是Xcode 7.0之后的版本,需要添加libc++.tbd、libz.tbd;
  • 如果是Xcode 7.0之前的版本,需要添加libc++.dylib、libz.dylib(如下圖)。

此時,假如你啟動工程,很大幾率上你會發現報 error 的情況。

4.2 引入頭文件

在需要調用 AlipaySDK 的文件中,增加頭文件引用。

  1. import <AlipaySDK/AlipaySDK.h> 

4.3 調用支付接口

在支付寶的接入文檔中,是將生成一個訂單這步放在客戶端來做了,但這個最好是放在服務器端來做。

后臺生成訂單然后拼接,簽名,然后服務器端直接給客戶端傳一個加密簽名過的參數就可以了,這樣比較安全。

所有的訂單信息,商戶信息等都掌握在自己的手中,這樣的話APP端就不怕被攔截數據,并且調用起來也就特別簡單了,只需要調用支付的接口。

如果只需要發送訂單和處理支付返回結果,只需要添加 AlipaySDK.bundle 和AlipaySDK.framework 這兩個就行了,下載的SDK中很容易發現。

快捷支付方法是這個:

  1. -(void)payOrder:(NSString *)orderStr fromScheme:(NSString *)schemeStr callback:(CompletionBlock)completionBlock; 

在支付的按鈕中,使用支付寶這個類,再調用這個方法就行啦!如下如: 

  1. // NOTE: 調用支付結果開始支付 
  2. [[AlipaySDK defaultService] payOrder:orderString fromScheme:@"FBYAlipayDemo" callback:^(NSDictionary *resultDic) { 
  3.     NSLog(@"reslut = %@",resultDic); 
  4. }]; 

4.4 配置支付寶客戶端返回 url 處理方法

如示例 AliSDKDemo\APAppDelegate.m 文件中,增加引用代碼:

  1. import <AlipaySDK/AlipaySDK.h> 

在 @implementation AppDelegate 中以下代碼中的 NSLog 改為實際業務處理代碼: 

  1. - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options 
  2.     if ([url.host isEqualToString:@"safepay"]) { 
  3.         //跳轉支付寶錢包進行支付,處理支付結果 
  4.         [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) { 
  5.             NSLog(@"result = %@",resultDic); 
  6.         }]; 
  7.     } 
  8.     return YES; 

4.5 項目配置

最后,不要忘了還要寫一個 URL Scheme,在 Targets -> Info 下最后一個即可找到,

點擊 “Info” 選項卡,在 “URL Types ”選項中,點擊 “+”。 

 


 

5. 常見問題匯總

5.1 支付后無法返回 App

一般是由于白名單沒有設置正確

 

  1. // NOTE: 調用支付結果開始支付 
  2. [[AlipaySDK defaultService] payOrder:orderString fromScheme:@"FBYAlipayDemo" callback:^(NSDictionary *resultDic) { 
  3.     NSLog(@"reslut = %@",resultDic); 
  4. }]; 

上方代碼中 appScheme 參數需要和文章 4.5 項目配置中設置的 URL Schemes 相同,這樣才能對應返回 App。

5.2 #include not find

這是一個神奇的大坑,我Google了好久,也不得其解,然后經網友提醒之后想起來#import ""和#import <>的區別。

解決方法:Targets -> Build Settings 下的 Header Search Paths。

添加如下目錄 "$(SRCROOT)/項目名稱/文件的絕對地址"

如圖: 

 

5.3 'openssl/asn1.h' file not found

由于在項目中引入 openssl 庫,出現這個問題是因為庫文件項目無法找到,只需要在 Header Search Paths 中加入 $(PROJECT_DIR)/項目名稱/openssl 即可,如下圖操作:

 

5.4 Undefined symbol: OBJC_METACLASS$_WKWebView

出現上面的問題,需要在項目配置中添加系統類庫:WebKit.framework

5.5 如果遇到運行后報錯,類似于以下提示信息:

  1. Cannot find interface declaration for 'NSObject', superclass of 'Base64' 

那么需要打開報錯了的文件,增加頭文件。

  1. # import <Foundation/Foundation.h> 

5.6 Swift 中接入 SDK 遇到的問題

如果項目使用 Swift 為開發語言,需要添加橋接文件,如 Bridging-Header.h

同時,在項目 Build Settings 中設置橋接文件的位置。

運行時如果發生以下報錯,則在橋接文件中,寫入#import

5.7 點擊支付跳轉至支付寶卡在啟動頁面

出現這個情況被卡在的頁面會出現相應錯誤提示,一般有以下幾種情況:

  • 商品信息拼接字符串錯誤
  • 支付賬號過期待續費狀態
  • 商戶 ID 錯誤
  • 訂單信息驗簽失敗

 

 

責任編輯:未麗燕 來源: 今日頭條
相關推薦

2011-04-21 11:27:42

Firefox支付寶

2021-09-09 15:30:28

鴻蒙HarmonyOS應用

2014-11-17 10:52:56

支付寶去阿里化

2009-09-17 12:15:28

互聯網

2017-02-09 20:56:40

iOS符號表支付寶

2018-02-25 11:22:14

SDK代碼接口

2015-10-16 09:35:23

支付寶更新微信

2013-10-11 09:41:01

Windows 8.1支付寶

2009-08-26 16:07:09

支付寶網上購物安全邁克菲

2023-11-28 08:53:15

2018-03-27 12:02:31

央行支付寶紅包

2025-02-17 00:00:45

接口支付寶沙箱

2011-10-15 23:24:48

Java

2017-12-18 18:23:09

支付寶掃碼賺錢支付寶套路

2013-10-31 11:24:53

支付寶漏洞支付寶漏洞

2009-11-23 10:02:22

PHP支付寶接口

2009-12-14 16:31:00

Linux安裝支付寶

2025-02-18 16:00:00

SpringBoot支付Java

2011-12-28 21:43:40

蘋果

2013-11-28 11:15:43

微信支付寶支付戰爭
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本午夜免费福利视频 | 性做久久久久久免费观看欧美 | 欧美日韩精品一区二区三区四区 | 产真a观专区 | 91色在线视频 | 欧美aaa级 | 亚洲天堂精品久久 | 国产一级免费在线观看 | 最新av在线播放 | 久久99精品久久久久久噜噜 | 日本偷偷操 | 91精品国产综合久久久久久蜜臀 | 天天看天天干 | 国产最新网址 | 国产一区不卡在线观看 | 夜夜爽99久久国产综合精品女不卡 | 国产一区二区三区 | 天堂一区二区三区 | 久久精品二区亚洲w码 | 亚洲天堂一区 | 亚洲激情在线观看 | 亚洲国产一区二区在线 | a欧美| 一区二区三区在线免费观看 | 久久久精品久久久 | 羞羞网站在线观看 | 亚洲精品日日夜夜 | 亚洲美乳中文字幕 | 欧美日韩亚洲一区 | 国产一区二区三区视频 | 久久不卡 | 在线午夜 | 成人区一区二区三区 | 九九免费视频 | 欧美一区二区三区精品 | 国产午夜在线 | 最近中文字幕在线视频1 | 黄网站色大毛片 | 丁香久久| 日本天天操 | 国产成人艳妇aa视频在线 |