ios支付宝の支払いの古いバージョンと新しいバージョンの比較

2736 ワード

支付宝の支払いについて、支付宝の公式は注文情報のサインアップ過程をクライアントに置いて完成したと明らかにした.取引先の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 *)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];
    }
    
}