iOS开发-支付宝支付集成
支付宝支付集成
接入准备
先与支付宝签约,获得商户ID(partner)和账号ID(seller)
https://opendocs.alipay.com/open/204/105297
接入文档:
https://opendocs.alipay.com/open/204/105295
1.通过 CocoaPods 导入,Podfile文件中增加
pod 'AlipaySDK-iOS'
然后终端执行
pod install --verbose --no-repo-update
2.增加头文件引用
# import <AlipaySDK/AlipaySDK.h>
3.组装请求信息(组装过程放在服务端处理,客户端通过接口获取到组装好的字符串)
OC:
// NOTE: 调用支付结果开始支付
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
}];
swift:
// NOTE: 调用支付结果开始支付
AlipaySDK.defaultService().payOrder(orderString, fromScheme: appScheme, callback: { (resp) in
print(resp as Any)
})
4.配置返回 url 处理方法
AppDelegate
// 9000 订单支付成功
// 8000 正在处理中
// 4000 订单支付失败
// 6001 用户中途取消
// 6002 网络连接出错
OC:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
swift:
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if url.host == "safepay" {
AlipaySDK.defaultService().processOrder(withPaymentResult: url) { result in
let returnCode:String = result?["resultStatus"] as! String
}
return true;
}
支付宝集成就结束了。