1 。支付宝支付回调在appdelegate里面,支付成功后再那里做相应处理
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService]PRocessOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
//(貌似可以不写 后来经测试发现在支付页面执行的回调)
//友盟分享 BOOL result = [UMSocialSnsServicehandleOpenURL:url];
// if (result == FALSE) {
// //调用其他SDK,例如支付宝SDK等(微信支付)
// return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
// }
return result;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
[[AlipaySDK defaultService]processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
if ([[resultDic objectForKey:@"resultStatus"]isEqualToString:@"9000"]) {
这里用了个通知做相应的页面处理
//创建一个消息对象
NSNotification * notice = [NSNotificationnotificationWithName:@"zhifubao" object:nil userInfo:nil];
//发送消息
[[NSNotificationCenterdefaultCenter]postNotification:notice];
}
}];
}
return YES;
}
2 。支付要核对好参数问题,比如parternerID 上次就传错了 提示签名错误,实则签名是没问题的,而是参数错了!
3. .
// 应用注册scheme,在当前项目的Info.plist定义URL types
NSString *appScheme = @"alisdkdemo";
这个参数自己随便设一下就行 不过需要跟下图位置保持一致
新闻热点
疑难解答