iOS開發-支付寶集成流程

1.看看demo是怎樣的

在網上搜索“iOS支付寶sdk”,下載sdk(如圖1)

圖1

進入到圖2點擊左側移動支付Demo&SDK再點擊右側的iOS&Android版資源,點擊右側SDK&DEMO下載SDK

圖2


下載完成后解壓,就得到了這個(圖3)

圖3

再解壓“支付寶錢包支付接口開發包2.0標準版(iOS2.2.3)”就得到了這個(圖4)


圖4

打開文件夾,運行一下看看。就得到了這個很炫的界面(圖5)

圖5

我們再來看看源碼:

圖6

圖6中所示在APViewController中有三個字符串變量,和圖5當中的提示是一樣的,這個玩意兒就是商戶和阿里簽訂協議后得到的一系列標示符。到時候和公司要。

2.自己集成支付寶

新建一個項目(注意:項目必須是英文,否則會出現迷之bug)。

回到剛才下載的demo中有兩個文件 AlipaySDK.Bundle和AlipaySDK.framework。將這兩個文件拷貝到項目中

圖7

在ViewController中導入頭文件

圖8

在viewdidload方法中引入如下代碼

Order *order = [[Order alloc] init];

order.partner = partner;

order.seller = seller;

order.tradeNO = [self generateTradeNO]; //訂單ID(由商家□自□行制定)

order.productName = product.subject; //商品標題

order.productDescription = product.body; //商品描述

order.amount = [NSString stringWithFormat:@"%.2f",product.price]; //商

品價格

圖9

你會發現報錯了。

再回到下載的文件夾中

圖10

會發現有兩個文件Order.h和Order.m,把這兩個文件拷貝到項目中,再導入頭文件。

圖11

進入到Order.h中會發現有很多的屬性名字被換掉了,果斷改了它。

圖12

接著復制如下的代碼:

order.notifyURL = @"http://www.xxx.com"; //回調URLorder.service = @"mobile.securitypay.pay";order.paymentType = @"1";

order.inputCharset = @"utf-8";

order.itBPay = @"30m";

//應用注冊scheme,在AlixPayDemo-Info.plist定義URL types

NSString *appScheme = @"alisdkdemo";

//將商品信息拼接成字符串

NSString *orderSpec = [order description];

NSLog(@"orderSpec = %@",orderSpec);

在復制完NSString *appScheme = @"alisdkdemo";這一句后需要在項目配置中點擊info在下面的URLType中添加一個type,URLscheme的值為alisdkdemo;

圖13

集成完畢之后會發現還有地方報錯

圖14

注釋顯示是簽名錯誤,在開發文檔中找到簽名代碼問題解決

圖15

到下載的demo里面找到這兩個文件夾和兩個文件,將文件拷貝到項目中,導入頭文件“DataSigner.h”,重新編譯發現啊會出現一堆缺少框架的錯誤

圖15

這時候需要在報錯的文件的頭文件上導入foundation框架。編譯之后終于就剩一個錯了。

圖16

打開工程配置文件BulidSetting,在搜索框中輸入“search”找到HeaderSearchPath,添加一個路徑,內容為“$(SRCROOT)/項目名”回車,重新編譯。

圖17

會出現如圖17所示的錯誤,此時需要導入一些靜態庫

libz.tbd

libc++.tbd

Security.framework

CoreMotion.Framework

CFNetwork.framework

CoreTelephony.framework

SystemConfiguration.framework


圖18

添加完成之后編譯就不會報錯啦。

最后將

//將簽名成功字符串格式化為訂單字符串,請嚴格按照該格式

NSString *orderString = nil;

if (signedString != nil) {

orderString = [NSString

stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",

orderSpec, signedString, @"RSA"];

[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme

callback:^(NSDictionary *resultDic) {

NSLog(@"reslut = %@",resultDic);

}];

}

這段代碼復制到Viewdidload中。

再在AppDelegate.m中復制下面這段代碼并導入

#import <AlipaySDK\AlipaySDK.h>

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url

sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

{

//如果極簡開發包不可用,會跳轉支付寶錢包進行支付,需要將支付寶錢包的支付結果回傳給開

發包

if ([url.host isEqualToString:@"safepay"]) {

[[AlipaySDK defaultService] processOrderWithPaymentResult:url

standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

}];

}

if ([url.host isEqualToString:@"platformapi"]){//支付寶錢包快登授權返回authCode

[[AlipaySDK defaultService] processAuthResult:url

standbyCallback:^(NSDictionary *resultDic) {

NSLog(@"result = %@",resultDic);

}];

}

return YES;

}

到此就大功告成,再結合項目具體做出修改就可以啦。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 實現支付寶支付的準備工作: 1.向支付寶簽約,成為支付寶的商戶 簽約完成后,支付寶會提供一些必要的數據給我們 商戶...
    Anson楊春安閱讀 8,258評論 0 6
  • 在我們應用開發中我們經常在自己的項目中使用到支付,下面我們來談談iOS這塊的支付;iOS支付主要分為兩類,第三方支...
    Hither閱讀 8,326評論 9 42
  • 文章主要講到以下五部分: 一、支付寶開放平臺創建應用 二、簽約移動支付功能 三、接入支付前的準備工作附準備工作中遇...
    sillen閱讀 17,952評論 1 10
  • iOS支付 iOS支付分為兩類,第三方支付和應用內支付(內購)。 第三方支付包括:支付寶支付、微信支付、銀聯支付、...
    請輸入賬號名閱讀 6,278評論 3 22
  • 中國風一直是國外動畫制作商的搶手題材。近幾年,由夢工廠出品的中國風動畫功夫熊貓,也是在國內十分的受歡迎。這部作品不...
    墟日閱讀 1,205評論 0 2