偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

1. 介紹

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

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

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

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

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

2. 交互流程

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

2.1 功能流程

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

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

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

3. 下載支付寶 SDK

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

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

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

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

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

通過 CocoaPods 導(dǎo)入

  1. pod  'AlipaySDK-iOS'  

手動(dòng)導(dǎo)入

官方 demo 截圖

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

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

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

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

 

其中,需要注意的是:

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

此時(shí),假如你啟動(dòng)工程,很大幾率上你會(huì)發(fā)現(xiàn)報(bào) error 的情況。

4.2 引入頭文件

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

  1. import <AlipaySDK/AlipaySDK.h> 

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

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

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

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

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

快捷支付方法是這個(gè):

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

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

  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 改為實(shí)際業(yè)務(wù)處理代碼: 

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

4.5 項(xiàng)目配置

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

點(diǎn)擊 “Info” 選項(xiàng)卡,在 “URL Types ”選項(xiàng)中,點(diǎn)擊 “+”。 

 


 

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 項(xiàng)目配置中設(shè)置的 URL Schemes 相同,這樣才能對應(yīng)返回 App。

5.2 #include not find

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

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

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

如圖: 

 

5.3 'openssl/asn1.h' file not found

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

 

5.4 Undefined symbol: OBJC_METACLASS$_WKWebView

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

5.5 如果遇到運(yùn)行后報(bào)錯(cuò),類似于以下提示信息:

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

那么需要打開報(bào)錯(cuò)了的文件,增加頭文件。

  1. # import <Foundation/Foundation.h> 

5.6 Swift 中接入 SDK 遇到的問題

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

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

運(yùn)行時(shí)如果發(fā)生以下報(bào)錯(cuò),則在橋接文件中,寫入#import

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

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

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

 

 

責(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

支付寶去阿里化

2017-02-09 20:56:40

iOS符號(hào)表支付寶

2009-09-17 12:15:28

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

2018-02-25 11:22:14

SDK代碼接口

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

2025-09-25 09:31:53

2018-03-27 12:02:31

央行支付寶紅包

2011-10-15 23:24:48

Java

2025-02-17 00:00:45

接口支付寶沙箱

2009-11-23 10:02:22

PHP支付寶接口

2009-12-14 16:31:00

Linux安裝支付寶

2013-11-28 11:15:43

微信支付寶支付戰(zhàn)爭

2011-12-28 21:43:40

蘋果

2013-10-31 11:24:53

支付寶漏洞支付寶漏洞

2017-12-18 18:23:09

支付寶掃碼賺錢支付寶套路
點(diǎn)贊
收藏

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