1. 將IntegratedAlipay(GitHub上下載)文件夾導入工程中,記得選copy;api
2. 點擊項目名稱,點擊「Build Settings」選項卡,在搜索框中,以關鍵字「search」 搜索,對「Header Search Paths」增長頭文件路徑:「$(SRCROOT)/項目名稱/IntegratedAlipay/AlipayFiles」(注意:不包括引號)服務器
3. 點擊項目名稱,點擊「Build Phases」選項卡,在「Link Binary with Librarles」 選項中,新增「AlipaySDK.framework」和「SystemConfiguration.framework」 兩個系統庫文件。app
4. 在AlipayHeader.h文件中設置kPartnerID、kSellerAccount、kNotifyURL、kAppScheme和kPrivateKey的值(全部的值在支付寶回覆的郵件裏面:注意,建議除appScheme之外的字段都從服務器請求)ui
5. 點擊項目名稱,點擊「Info」選項卡,在URL types裏面添加一項,Identifier能夠不填,URL schemes必須和appScheme的值相同,用於支付寶處理回到應用的事件;url
6. 在須要用的地方導入「AlipayHeader.h」,並使用「[AlipayRequestConfig alipayWithPartner:...」方法進行支付;spa
7. 在AppDelegate中處理事件回調:orm
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {事件
//若是極簡 SDK 不可用,會跳轉支付寶錢包進行支付,須要將支付寶錢包的支付結果回傳給 SDK if ([url.host isEqualToString:@"safepay"]) {ip
[[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;
}
弄完一切以後可能出現「 rsa_private read error : private key is NULL」問題
兩中解決方法
1解決方法:
1)在RSADataSigner.m文件中 搜索代碼 [result appendString:@"-----BEGIN PRIVATE KEY-----\n"]; 將其改爲 [result appendString:@"-----BEGIN RSA PRIVATE KEY-----\n"];
2)在RSADataSigner.m文件中 搜索代碼 [result appendString:@"\n-----END PRIVATE KEY-----"]; 將其改爲 [result appendString:@"\n-----END RSA PRIVATE KEY-----"];
2解決方法: (最大可能的解決方法)
A、將私鑰轉成PKCS8替換一下原私鑰便可
打開終端:
一、生成私鑰pem, 執行命令 openssl genrsa -out rsa_private_key.pem 1024
二、生成公鑰,執行命令 openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
三、 將RSA私鑰轉換成PKCS8格式,命令執行 openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt ( PHP服務端語言讀取私鑰不須要PKCS8轉換)
將生成的private key複製到AliPayHeader頭文件的私鑰中
#define kPrivateKey @""