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

37 篇文章 0 订阅
15 篇文章 0 订阅

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

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支付!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值