支付宝支付
按照支付宝开放平台的文档来开发
基本流程如下:
1 下载支付宝支付SDK,导入到xcode,并添加依赖库
2 按照文档配置请求字符串(请求字符串可由server端配置好然后返回给客户端),尤其对既支持支付宝支付又支持微信支付的客户端,由于微信支付需要先生成prepay_id,然后在客户端用这个参数及其他的一些参数向微信发送支付请求,可以统一向server端发起支付请求,server端根据支付宝和微信返回不同的json数据,既如果是微信支付则返回支付所需的字段,详见微信api文档,如果是支付宝则返回orderStr,客户端调用支付宝提供的接口- (void)payOrder:(NSString*)orderStr
fromScheme:(NSString*)schemeStr
callback:(CompletionBlock)completionBlock;直接发起支付请求
orderStr:订单信息,在这里有服务器端返回
fromScheme:调用支付的app注册在info.plist中的scheme
callBack:支付结果回调Block
另外可能app被后台进程kill掉,此时需要在这个方法写入支付结果回掉处理函数
- (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) {
//【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
NSLog(@"result = %@",resultDic);
}];
}
if ([url.host isEqualToString:@"platformapi"]){//支付宝钱包快登授权返回authCode
[[AlipaySDK defaultService] processAuthResult:url standbyCallback:^(NSDictionary *resultDic) {
//【由于在跳转支付宝客户端支付的过程中,商户app在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}