项目总结58:微信小程序支付-校验签名失败-问题处理

 问题还原:

  项目二次开发需求迭代,重新扩容订单需求时,发现小程序唤起订单支付页面时,总是报"检验签名失败"异常。

分析和处理问题

  1-既然是校验签名失败,说明要么我们自己的签名不对,要么给微信参数给错了;

  2-微信支付文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7&index=6;明确说明唤起支付需要5个参数进行签名校验,如下:

 

 

   3-核实生成唤起支付的参数是否正确,结果发现多了三个参数,因为传给微信的签名是用8个参数生成的,而微信校验签名时自己生成的签名是用5个参数生成的,所以两个签名不一样,导致签名失败。把三个参数去掉后,就可以了;

几个比较容易坑人的问题或概念

  1-针对验签这个操作,APP支付签名和小程序支付签名,对应的参数数量和名称写法时不一样的,小程序是5个参数,且参数名称使用驼峰法则;而APP支付时6个参数,参数名称是全部小写。

 

   

 

 

 

  2-整个微信支付流程中,涉及到两个签名

   1- 统一下单时,需要对下单参数进行签名

   2- 唤起支付时需要校验签名,校验意味着,需要我们自己先生成签名,再把参数和签名传给微信,微信在生成一个签名,两个签名进行比较。

 

posted on 2020-03-11 21:20  我不吃番茄  阅读(2659)  评论(0编辑  收藏  举报