移動開發支付寶
實現支付寶支付的所需
1. 填寫個人/公司的信息,與支付寶簽約,簽約完成, 支付寶會提供一些數據給我們(商戶ID - partner id seller id, 收款人賬號 - 支付寶賬號) 注: 簽約時 公司需提供營業執照 個人需提供有效身份證件
2. 獲取支付相關 私鑰 和 密鑰 用來加密 實現數據安全
3. 下載支付SDK,拖進工程
下載SDK的地址 https://b.alipay.com/newIndex.htm
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.service =
@"mobile.securitypay.pay";
order.paymentType
=
@"1";
order.inputCharset
=
@"utf-8";
order.itBPay
=
@"30m";
//應用註冊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);
}];
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.