Bootstrap

微信支付-支付验证签名失败,跳转无响应等

微信支付比起支付宝支付感觉要麻烦很多,或者微信内部实现更严谨吧 ,下面来说说微信支付过程中遇到的一些问题:

1、运行[WXApi sendReq:req];,运行这句代码就是跳转微信,调起支付,但是发现并没有跳转微信,没有任何反应,任何错误提示都没有

解决方法: 查看调起微信支付是所传的参数是否有问题,参数如下(res.)

NSDictionary *orderInfo = responseObject[@"params"];//后台传给我们的参数
                //创建支付对象
                PayReq *req   = [[PayReq alloc] init];
                //由用户微信号和AppID组成的唯一标识,用于校验微信用户
//                req.openID = orderInfo[@"appid"]; //就是自己的APPId,可以不用写,文档中没要求


                // 商户号,在注册的时候给的
                req.partnerId = orderInfo[@"partnerid"];

                // 预支付订单这个是后台跟微信服务器交互后,微信服务器传给你们服务器的,你们服务器再传给你
                req.prepayId  = orderInfo[@"prepayid"];

                // 根据财付通文档填写的数据和签名
                //这个比较特殊,是固定的,只能是即req.package = Sign=WXPay
                req.package   = orderInfo[@"package"];

                // 随机编码,为了防止重复的,在后台生成
                req.nonceStr  = orderInfo[@"noncestr"];

                // 这个是时间戳,也是在后台生成的,为了验证支付的
                NSString * stamp = orderInfo[@"timestamp"];
                req.timeStamp = stamp.intValue;

                // 这个签名也是后台做的
                req.sign = orderInfo[@"sign"];

                //发送请求到微信,等待微信返回onResp
                [WXApi sendReq:req];

req 的各个参数是否都有设置,设置的是否有值(与后台给的参数是否对应),设置了并且有值,那就问后台那边的的参数值(不是参数名)在他那边整个过程中是否一致

2、跳转微信后提示“支付验证签名失败”

如果签名以及其他所有参数都是后台传过来的,那一般都是后台的问题

解决方法:

1)后台那边的参数名的大小写以及给你的参数名的大小写,目前貌似都是小写的

2)后台的两次签名是否正确

注意:时间戳应该是10位的,如果是13位的,必须先除以1000后才可以使用

下面是一篇评论不错的相关文章(可以给你后台看看哦)
微信支付 一步一个坑的APP支付!

;