昨天晚上加班搞项目 微信支付:遇见了前所未有的坑,因为是接受别人的项目 代码写的惨不忍睹 看了两周大概业务逻辑能看懂了,接受之后遇到的最大的问题 就是添加微信支付了,调试了一晚上:终于成功支付了:
因为是订单信息是直接从服务器上面获取的 相对来说还是比较容易一点的
直接进入正题:
坑1;在订单生成的时候
//调起微信支付
PayReq *pR = [[PayReq alloc]init];
pR.openID = dict[@"appid"];
pR.partnerId = dict[@"partnerid"];
pR.prepayId = dict[@"prepayid"];
pR.nonceStr = dict[@"noncestr"];
pR.package = dict[@"package"];
pR.timeStamp = stamp.intValue;
NSLog(@"%d",stamp.intValue);
pR.sign = dict[@"sign"];
[WXApi sendReq:pR]
这几个参数一定不能少:而且预支付后台已经做过了 至于什么二次签名之类的肯呢个没有遇到。
坑2:原先项目中有微信分享功能,如果直接调用接口的话是
[WXApi sendReq:pR]这个方法的返回值一直是no 查了好多资料 原因就是他那个库的问题 ,下载最新的.a文件替换掉就行了,
坑3:这个是替换完之后加一个动态库就行了:libsqlite3.0.tbd
坑4:
-(void) onResp:(BaseResp*)resp
– (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
这个代理方法已经不用了:
被这个代理方法取代了:
– (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
但是建议还是使用这个代理回调:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
暂时就这么多了 后续更新中…………