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返回给客户端,客户端直接使用的话,肯定是调用不起来微信支付的.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值