为什么 iOS 支付成功后能回到 APP ,但是没有回调?

更新于:2019年04月19日 11:54:15

接入

客户端从服务器端拿到 charge 对象后,调用下面的方法

[Pingpp createPayment:charge
       viewController:viewController
         appURLScheme:kUrlScheme
       withCompletion:^(NSString *result, PingppError *error) {    
    if ([result isEqualToString:@"success"]) {        // 支付成功
    } else {        // 支付失败或取消
        NSLog(@"Error: code=%lu msg=%@", error.code, [error getMsg]);
  }
}];


前方高能!!注意!!注意!!一定要注意!!!

接收并处理交易结果

渠道为百度钱包或者渠道为支付宝但未安装支付宝钱包时,交易结果会在调起插件时的 Completion 中返回。渠道为微信、支付宝(安装了支付宝钱包)、银联或者测试模式时,请实现 UIApplicationDelegate 的 - application:openURL:xxxx: 方法

- (BOOL)application:(UIApplication *)app
            openURL:(NSURL *)url 
            options:(NSDictionary *)options {
    BOOL canHandleURL = [Pingpp handleOpenURL:url withCompletion:nil];    
    return canHandleURL;
}


Url Schemes 的设置

不回调的情况一般发生在微信,微信渠道请注意,在设置 Url Schemes 时,Url Schemes 的值需要填入微信平台上注册的应用程序 id(为 wx 开头的 appid ),如果不使用微信,则可以自定义,建议起名稍复杂一些,尽量避免与其他程序冲突。允许英文字母和数字,首字母必须是英文字母,不允许特殊字符。

    您需要登录后才可以回复