微信和支付宝sdk使用注意事项

1 刚刚接触如题这一块儿,发现里面坑还是很多的。所以总结了一下要注意的一些点如下。
2 先说一下iOS9的适配问题。到了这个版本如果想打开外部app就要在plist添加白名单否则openURL的时候会失败且打印错误信息。具体要做的就是在plist添加LSApplicationQueriesSchemes数组,里面装的都是要打开的外部程序的URL scheme。
3 然后分开说一下,先是微信的:微信的支付接口封装要比支付宝的完善一些,用起来也更顺手。要注意的就是,他的支付采用回调函数,要先指定负责回调的类,具体做法:iOS9.0之前的系统实现 – application:openURL:sourceApplication:annotation:,返回return [WXApi handleOpenURL:<#(NSURL )#> delegate:<#(id)#>],其中delegate传哪个类的实例,系统回调的时候就会在哪个类里面寻找并调用-(void) onResp:(BaseResp)resp方法。这个方法不论支付结果如何都会被调用。为了让AppDelegate不那么臃肿,我选择自己写一个单例的类,然后把所有微信回调的处理都交给这个类,要注意的是这个类要实现WxApiDelegate这个协议就可以。iOS9.0之后要实现
– application:openURL:options:,注意点同上。
接着说一下支付宝支付:同注意添加白名单;如果用户没装它的app,就会打开网页支付;支付请求 payOrder:orderString fromScheme:appScheme callback:,用RSA算法加密,我们的做法是整个签名(orderString)过程都交给公司服务器,(前台)省事又安全_^;支付结果采用block回调,会返回一个resultStatus(错误代号)和一个result字符串,代号为9000且串中的success=”true”才算支付成功,其他情况通过代号来判断,百度上说是有返回9000但是订单其实并没有支付成功的情况发生。
注:这里只说了一些注意事项,具体的支付流程参考对应的开放平台。

你可能感兴趣的:(微信和支付宝sdk使用注意事项)