自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

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

1. 介紹

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

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

在做支付之前,在網(wǎng)上也查尋了資料,大多都說,支付接入坑太多,微信坑最多,銀聯(lián)文檔太復(fù)雜。

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

網(wǎng)上的經(jīng)驗什么的大都是比較老的,比較新的能用到的文章不多(但是好文章還是有的,對我?guī)椭埠艽?,下面給大家詳細介紹一下,幫助大家繞開坑。

2. 交互流程

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

2.1 功能流程

2.2 數(shù)據(jù)交互

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

  • 生成訂單
  • 調(diào)用支付寶接口,發(fā)送訂單
  • 返回訂單支付結(jié)果并處理

3. 下載支付寶 SDK

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

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

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

4. 導(dǎo)入庫集成SDK

4.1 導(dǎo)入文件和關(guān)鍵庫

通過 CocoaPods 導(dǎo)入

  1. pod  'AlipaySDK-iOS'  

手動導(dǎo)入

官方 demo 截圖

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

  • 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(如下圖)。

此時,假如你啟動工程,很大幾率上你會發(fā)現(xiàn)報 error 的情況。

4.2 引入頭文件

在需要調(diào)用 AlipaySDK 的文件中,增加頭文件引用。

  1. import <AlipaySDK/AlipaySDK.h> 

4.3 調(diào)用支付接口

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

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

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

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

快捷支付方法是這個:

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

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

  1. // NOTE: 調(diào)用支付結(jié)果開始支付 
  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 改為實際業(yè)務(wù)處理代碼: 

  1. - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options 
  2.     if ([url.host isEqualToString:@"safepay"]) { 
  3.         //跳轉(zhuǎn)支付寶錢包進行支付,處理支付結(jié)果 
  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

一般是由于白名單沒有設(shè)置正確

 

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

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

5.2 #include not find

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

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

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

如圖: 

 

5.3 'openssl/asn1.h' file not found

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

 

5.4 Undefined symbol: OBJC_METACLASS$_WKWebView

出現(xiàn)上面的問題,需要在項目配置中添加系統(tǒng)類庫:WebKit.framework

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

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

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

  1. # import <Foundation/Foundation.h> 

5.6 Swift 中接入 SDK 遇到的問題

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

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

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

5.7 點擊支付跳轉(zhuǎn)至支付寶卡在啟動頁面

出現(xiàn)這個情況被卡在的頁面會出現(xiàn)相應(yīng)錯誤提示,一般有以下幾種情況:

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

 

 

責(zé)任編輯:未麗燕 來源: 今日頭條
相關(guān)推薦

2011-04-21 11:27:42

Firefox支付寶

2021-09-09 15:30:28

鴻蒙HarmonyOS應(yīng)用

2014-11-17 10:52:56

支付寶去阿里化

2018-02-25 11:22:14

SDK代碼接口

2017-02-09 20:56:40

iOS符號表支付寶

2009-09-17 12:15:28

互聯(lián)網(wǎng)

2015-10-16 09:35:23

支付寶更新微信

2009-08-26 16:07:09

支付寶網(wǎng)上購物安全邁克菲

2013-10-11 09:41:01

Windows 8.1支付寶

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

2021-12-29 21:36:12

微信支付寶移動支付

2013-11-28 11:15:43

微信支付寶支付戰(zhàn)爭
點贊
收藏

51CTO技術(shù)棧公眾號