iOS App集成第三方,有两种方式,1,是集成起对应的sdk; 2,则是url scheme启动第三方应用;支付宝支付我用第一种方式纪录描述,微信用第二种方式纪录描述;
坑1,微信支付:
1,微信支付是按照分计的;
2,微信支付,支付金额为0时,是不能打开对微信app的;
3,网络不好时,微信偶尔会抽风,报一个Error Domain=weixin_pay Code=-2的错误;
4,确认安装微信;
+(BOOL)isWeixinInstalled{
return [self canOpen:@"weixin://"];
}
依据返回值进行相关的操作,为YES 进行下一步的操作,否则提示玩家安装,需要注意的是:iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。
受此影响,当你的应用在iOS 9中需要使用微信SDK的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里增加如下代码:
LSApplicationQueriesSchemes
weixin
NSAppTransportSecurity
NSAllowsArbitraryLoads
完成后需使用Xcode 7编译。
请注意:未升级到微信客户端6.2.5及以上版本的用户,在iOS 9下使用到微信相关功能时,仍可能无法成功。
6:partnerid 和 mchid是一个东西,可是官方文档上却显示不是一个东西,好坑好坑!所以在二次签名的时候:
[signParams setObject: mchid forKey:@"partnerid"];
这样就好;7: 打开微信支付,openURL的参数需要你自己组装,一般这一串数据是由服务器返回(因为私钥放在本地确实太安全),也可以放在本地,那就需要自己组装URL:
@"weixin://app/%@/pay/?....&signType=SHA1"
以上就是微信支付遇到的一些坑:
若有什么疑问可以Q我,QQ418835335,验证信息:iOS开发