移動開發支付寶

實現支付寶支付的所需
1. 填寫個人/公司的信息,與支付寶簽約,簽約完成, 支付寶會提供一些數據給我們(商戶ID - partner id seller id, 收款人賬號 - 支付寶賬號) 注: 簽約時 公司需提供營業執照 個人需提供有效身份證件
2. 獲取支付相關 私鑰 和 密鑰 用來加密 實現數據安全
3. 下載支付SDK,拖進工程

1. 找到 移動支付 按鈕 點擊進入 2 如圖

2. 點擊 技術集成 對應切換到 3 如圖

3. 點擊 請點此下載集成開發包
4. 下載完成 後 產生一個 WS_MOBILE_PAY_SDK_BASE的ZIP壓縮包
5. 解壓完成, 進入文件目錄 找到對應的 支付寶錢包支付接口開發包2.0標準版 目錄
6. 找到對應的 Demo 目錄
7. 打開對應目錄 找到Demo文件 並打開工程
8. 集成SDK到你的工程中時, 需將下圖中對應的文件拖入你的工程

9. 如下圖依次倒入系統框架 到 Linked Frameworks and Libraries
 

10. 創建預編譯文件 .pch
注: Xcode 6以後 將pch文件取消, 因此需手動添加 添加步驟如圖
最後一步 需雙擊Prefix Header  並輸入 $(SRCROOT)/支付寶SDK/AlipaySDK-Prefix.pch

11. 將支付寶官方Demo的pch文件中的代碼 複製到 自己生成的pch文件中

12. 有些文件找尋不到需給其路徑, 因此需在Header Search Paths 中添加搜索路徑


13. Command + B 編譯通過


14. 核心代碼

NSString *partner = @"partner 商戶 ID:支付寶給申請支付集成人的身份";
NSString *seller = @"seller 賬號 ID:商戶的支付寶帳號";
NSString *privateKey = @“私鑰";
/*
 *生成訂單信息及簽名
 */  
//將商品信息賦予AlixPayOrder的成員變量
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.notifyURL @"http://www.xxx.com"; // 服務器回調的url
order.service = @"mobile.securitypay.pay";
order.paymentType = @"1";
order.inputCharset = @"utf-8";
order.itBPay = @"30m";
order.showUrl = @"m.alipay.com";
//應用註冊scheme,AlixPayDemo-Info.plist定義URL types
//appScheme 應用的加調地址:支付完成,跳回原應用時使用
NSString *appScheme = @"alisdkdemo"; 
//將商品信息拼接成字符串
NSString *orderSpec = [order description];
NSLog(@"orderSpec = %@",orderSpec);
//獲取私鑰並將商戶信息簽名,外部商戶可以根據情況存放私鑰和簽名,只需要遵循RSA簽名規範,並將簽名字符串base64編碼和UrlEncode
id<DataSigner> signer = CreateRSADataSigner(privateKey);
//防止字符串被修改
NSString *signedString = [signer signString:orderSpec];
//將簽名成功字符串格式化爲訂單字符串,請嚴格按照該格式
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);
        }];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章