关乎支付宝支付,支付宝官方表示订单信息的加签过程放在客户端完成。商户的privatekey
等数据严禁放在客户端。
本文主要针对老版本和新版本的支付回调做一些简单的记录。
需要配置的就是一些依赖库的配置以及appScheme
。
老版本 比如15.0.0
老版本的支付是调用下面的接口,在回调里面处理。
[[AlipaySDK defaultService] payOrder: 加签订单字符串 fromScheme:KAppScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
}];
但是新版的支付sdk是这么说明的(又变成了网页支付,有一句mmp不知当讲不当讲):
/**
* 支付接口
*
* @param orderStr 订单信息
* @param schemeStr 调用支付的app注册在info.plist中的scheme
* @param completionBlock 支付结果回调Block,用于wap支付结果回调(非跳转钱包支付)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;
新版本的支付 版本15.5.0
老样子:我们还是需要调用原来的接口:
[[AlipaySDK defaultService] payOrder: 加签订单字符串 fromScheme:KAppScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
}];
如果安装了客户端,我们需要传参数,调用支付宝,但是支付宝的回调不在这里,我们需要在AppDelegate里进行处理回调,也就是说我们新版本的支付宝回调已经转移到了AppDelegate里,发送通知完成处理即可。
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
FTWS(weakSelf);
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
[weakSelf dealPayBack:resultDic];
}];
}
return YES;
}
// NOTE: 9.0以后使用新API接口
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
//跳转支付宝钱包进行支付,处理支付结果
// NSLog(@"%@",url);
FTWS(weakSelf);
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
[weakSelf dealPayBack:resultDic];
}];
}
return YES;
}
-(void)dealPayBack:(NSDictionary *)resultDic{
BOOL isOilCardPay =[NCUserInfoManager isReadyOilCardPay];
if (isOilCardPay) {
[LXNotificationCenter postNotificationName:FTBuyOilCardAliPay object:resultDic];
}
BOOL isGrabOrderPay =[NCUserInfoManager isReadyGraPay];
if (isGrabOrderPay) {
[LXNotificationCenter postNotificationName:FTGrabOrderAliPay object:resultDic];
}
}
网友评论