美文网首页恩美第二个APP项目
ios 支付宝支付老版本与新版本的比较

ios 支付宝支付老版本与新版本的比较

作者: 雪_晟 | 来源:发表于2017-11-28 18:01 被阅读36次

    关乎支付宝支付,支付宝官方表示订单信息的加签过程放在客户端完成。商户的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];
        }
        
    }
    

    相关文章

      网友评论

        本文标题:ios 支付宝支付老版本与新版本的比较

        本文链接:https://www.haomeiwen.com/subject/uvuebxtx.html