手机网站支付转 APP 支付

手机网站支付流程
iOS

Android

手机网站转 Native 支付流程
iOS

Android

对比总结
如何实现手机网站转Native支付
iOS 接入说明
配置
AlipaySDK.bundle
AlipaySDK.framework


#import <AlipaySDK/AlipaySDK.h>
#import <AlipaySDK/AlipaySDK.h>
- (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:App在后台很可能被系统kill了,所以pay接口的callback就会失效,请商户对standbyCallback返回的回调结果进行处理,就是在这个方法里面处理跟callback一样的逻辑】
NSLog(@"result = %@",resultDic);
}];
}
return YES;
}
接口调用说明
调用提供的接口
[[AlipaySDK defaultService] payInterceptorWithUrl:url fromScheme:scheme callback:^(NSDictionary *result) {
// 处理支付结果
NSLog(@"%@", result);
}];
实现手机网站转APP支付
1.
2.
拦截+支付二合一接口
示例代码
参数说明
参数名称 | 类型 | 说明 |
---|---|---|
urlStr | NSString * | 手机网站支付的请求 URL。 |
schemeStr | NSString * | 接入方 App 注册的 URL scheme,供支付完成后跳回接入方 App。 |
completionBlock | objc(^CompletionBlock)(NSDictionary *resultDic) | 支付结束之后的回调其中 CompletionBlock 定义如下:objctypedef void(^CompletionBlock)(NSDictionary \*resultDic); |
同步拦截结果返回值说明
返回值类型 | 描述 |
---|---|
BOOL | 如果 urlStr 是有效的支付宝 H5 支付 URL,则说明拦截转化成功,返回 YES,商户容器无需再加载该 URL。 如果是无效的,则返回 NO,商户容器需要继续加载该 URL。 |
异步支付结果返回值说明
参数名称 | 参数类型 | 参数说明 |
---|---|---|
resultCode | NSString * | 返回码,标识支付状态,含义如下:9000——订单支付成功8000——正在处理中4000——订单支付失败5000——重复请求6001——用户中途取消6002——网络连接出错 |
returnUrl | NSString * | 支付结束后应当跳转的 URL 地址。 |