1.看看demo是怎樣的
在網上搜索“iOS支付寶sdk”,下載sdk(如圖1)
進入到圖2點擊左側移動支付Demo&SDK再點擊右側的iOS&Android版資源,點擊右側SDK&DEMO下載SDK
下載完成后解壓,就得到了這個(圖3)
再解壓“支付寶錢包支付接口開發包2.0標準版(iOS2.2.3)”就得到了這個(圖4)
打開文件夾,運行一下看看。就得到了這個很炫的界面(圖5)
我們再來看看源碼:
圖6中所示在APViewController中有三個字符串變量,和圖5當中的提示是一樣的,這個玩意兒就是商戶和阿里簽訂協議后得到的一系列標示符。到時候和公司要。
2.自己集成支付寶
新建一個項目(注意:項目必須是英文,否則會出現迷之bug)。
回到剛才下載的demo中有兩個文件 AlipaySDK.Bundle和AlipaySDK.framework。將這兩個文件拷貝到項目中
在ViewController中導入頭文件
在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]; //商
品價格
你會發現報錯了。
再回到下載的文件夾中
會發現有兩個文件Order.h和Order.m,把這兩個文件拷貝到項目中,再導入頭文件。
進入到Order.h中會發現有很多的屬性名字被換掉了,果斷改了它。
接著復制如下的代碼:
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;
集成完畢之后會發現還有地方報錯
注釋顯示是簽名錯誤,在開發文檔中找到簽名代碼問題解決
到下載的demo里面找到這兩個文件夾和兩個文件,將文件拷貝到項目中,導入頭文件“DataSigner.h”,重新編譯發現啊會出現一堆缺少框架的錯誤
這時候需要在報錯的文件的頭文件上導入foundation框架。編譯之后終于就剩一個錯了。
打開工程配置文件BulidSetting,在搜索框中輸入“search”找到HeaderSearchPath,添加一個路徑,內容為“$(SRCROOT)/項目名”回車,重新編譯。
會出現如圖17所示的錯誤,此時需要導入一些靜態庫
libz.tbd
libc++.tbd
Security.framework
CoreMotion.Framework
CFNetwork.framework
CoreTelephony.framework
SystemConfiguration.framework
添加完成之后編譯就不會報錯啦。
最后將
//將簽名成功字符串格式化為訂單字符串,請嚴格按照該格式
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;
}
到此就大功告成,再結合項目具體做出修改就可以啦。