微信支付

来源:互联网 发布:对网络语言的看法ppt 编辑:程序博客网 时间:2024/06/07 17:50

昨天晚上加班搞项目 微信支付:遇见了前所未有的坑,因为是接受别人的项目 代码写的惨不忍睹 看了两周大概业务逻辑能看懂了,接受之后遇到的最大的问题 就是添加微信支付了,调试了一晚上:终于成功支付了:

因为是订单信息是直接从服务器上面获取的  相对来说还是比较容易一点的

直接进入正题:

坑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

  需要知道支付结果 :代理方法不执行!!
原因》
<code class="objectivec">– (<span class="hljs-built_in" style="color: rgb(102, 0, 102);">BOOL</span>)application:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">UIApplication</span> *)application handleOpenURL:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSURL</span> *)url;</code>
<code class="objectivec">这个代理方法已经不用了:</code>
<code class="objectivec">被这个代理方法取代了:</code><pre class="hljs objectivec" name="code" style="white-space: pre-wrap; word-wrap: break-word; padding: 0.5em; background-color: rgb(255, 255, 255);"><code class="objectivec">– (<span class="hljs-built_in" style="color: rgb(102, 0, 102);">BOOL</span>)application:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">UIApplication</span> *)application openURL:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSURL</span> *)url sourceApplication:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSString</span> *)sourceApplication annotation:(<span class="hljs-keyword" style="color: rgb(0, 0, 136);">id</span>)annotation </code>

 但是建议还是使用这个代理回调:

<code class="objectivec">- (<span class="hljs-built_in" style="color: rgb(102, 0, 102);">BOOL</span>)application:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">UIApplication</span> *)app openURL:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSURL</span> *)url options:(<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSDictionary</span><<span class="hljs-built_in" style="color: rgb(102, 0, 102);">NSString</span>*, <span class="hljs-keyword" style="color: rgb(0, 0, 136);">id</span>> *)options </code>

暂时就这么多了 后续更新中…………


0 0
原创粉丝点击