支付宝支付

2016-04-16  本文已影响486人  HackerOnce

按照支付宝开放平台的文档来开发

基本流程如下:

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;

}

上一篇下一篇

猜你喜欢

热点阅读