我遇到的ping++支付问题总结
鉴于项目中遇到的ping++(支付宝,微信,银联)支付遇到的问题,写了这篇文章,一方面帮助自己巩固一下,另一方面也真心的希望可以给大家提供一点自己的经验。
安装,导入过程不在一一详细的叙述,官方有详细的文档。按照一步一步来,一般不会出现问题,这里,只是总结一下自己遇到的问题。
1.接入支付的代码如下:
[PingppcreatePayment:json
viewController:self
appURLScheme:kUrlScheme
withCompletion:^(NSString*result,PingppError*error) {
//支付结果的输出,在这里根据结果的成功和失败做出响应的处理,我的处理在方法zhifuJump:和zhifuNojump:中,此处不在写出。
NSLog(@"%@----------%@",result,error);
if([typeisEqualToString:@"buy"]) {
[selfzhifuJump:result];
}else{
[selfzhifuNojump:result];
}
}
];
注:json及请求到的charge,后台集成ping++之后,会给前端一个接口,传入相应的参数调用此接口酒会返回charge对象,然后根据charge对象就可以调用上面的方法即成支付。
kUrlScheme这个是你定义的URL Scheme,支付宝、微信支付、银联和测试模式需要
2.调用哪种类型的支付,需要在info.plist将此应用设置为白名单,没有用到的支付方式可以不设置:
info.plist设置白名单<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixin</string>
<string>wechat</string>
<string>alipay</string>
</array>
需要注意的是,微信支付需要在info.plist中添加URL Schemes
info-URL Types中添加3.解决支付宝不能返回应用的问题,在info.plist中进行如下图所示的配置:
info.plist设置4.delegate中一定要写方法的回调:
// iOS 8及以下请用这个
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
return[PingpphandleOpenURL:urlwithCompletion:nil];
}
// iOS 9以上请用这个
- (BOOL)application:(UIApplication*)app openURL:(NSURL*)url options:(NSDictionary*)options {
return[PingpphandleOpenURL:urlwithCompletion:nil];
}