iOS微信支付客户端无法跳转到微信或跳转到微信后,出现[确定]按钮,却无订单信息

      最近做微信支付,遇到几个坑,故写下此文,愿能帮助到那些还在坑里的兄弟们.

      iOS端做微信支付有两套方案

     1.客户端调用服务器端接口完成下单功能,统一下单在服务器端处理-----------------------iOS微信demo

         下载地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

      2.客户端直接调用微信统一下单接口,统一下单在iOS客户端完成----------------------cocoa中狂龙天使的demo

         下载地址:http://www.cocoachina.com/bbs/read.php?tid-309177-keyword-%CE%A2%D0%C5%D6%A7%B8%B6.html

     本文所有问题都是针对第一种情况而言,如果是第二种的话,只要把服务器端的注意事项在iOS客户端实现时注意即可.

问题1:iOS客户端点击微信支付无法跳转

原因:返回key值的大小写,iOS微信demo的接口返回的值都是appid,partnerid之类的key值,所以demo写的时候也是直接取appid,partnerid

方案1:修改服务器端的返回json的key值均设置为小写

方案2:修改iOS客户端,解析时采用和服务器端同样的key值


问题2:iOS客户端点击微信支付后,跳转至微信,但是订单信息没有,只有确定按钮

原因:服务器端给客户端返回的prepayid或者sign签名或者noncestr不对,建议让服务器端开发人员改(服务器端改只要多调用两次原有接口就行)

方案:

1.调用统一下单接口https://api.mch.weixin.qq.com/pay/unifiedorder时,也一定要传入sign,sign为整个传入参数排序后的md5得到的大写字符串.----------------------------这步是为了得到正确的prepayid值


2.将appid,partnerid,nonceStr,package,timestamp及统一下单接口返回的prepayid,排序后md5加密得到的大写字符串才是真正的sign--------------------这步是为了得到正确sign

3.noncestr只要使用统一下单时的传入参数nonce_str--------------------------这步是为了得到并使用正确的noncestr

ps:调用统一下单接口后,会得到下单成功后的xml信息,里面最有用的信息只有prepayid,并且noncestr和sign都是不对,如果使用noncestr和sign返回给客户端,客户端直接使用的话,肯定是调用不起来微信支付的.


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/guggle15/article/details/51987073
个人分类: iOS
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

iOS微信支付客户端无法跳转到微信或跳转到微信后,出现[确定]按钮,却无订单信息

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭