前段时间做了微信支付,遇到很多漏洞。网上没有特别明确的解释。学习了各行各业人才的经验,终于完成了。网上有很多解释。我只谈一些注意点和解决方法。我将谈谈从完全无知到完成的过程。
微信提供的接口文档中提供了微信支付接口,应直接调用发起微信支付
文件路径:https://developers . weixin . QQ.com/mini program/dev/API/API-pay . html # wxrequestpaymentobject
然而,当我开始自信地看待所需的参数时,我被强迫了。这些参数是什么
在这些参数中,这两个是最难理解和获取的。仔细研究后发现,要获取参数包,需要调用微信提供的另一个接口,就是统一订单接口。本来微信上的支付是需要预放的。这里的时间戳使用第二个值,而不是毫秒值
文档路径:https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?章节=9_1
这个接口需要在后台通过http请求进行调整
在这些参数中,有两个比较熟悉的,也是在第一步发起微信请求的时候发现的。之后发现这里的随机字符串是开始支付时使用的随机字符串,必须一致。所以,如果认为签名是一样的,那就完全调整了。这里的签名称为第一个签名,因为付款时需要第二个签名。说明了签名生成的算法,读几遍就能明白。我建议读几十遍。
准备好所有这些必需的参数
首先你要有一个店铺,然后你要有一个商家号,这是非常重要的
订单号必须唯一。通知地址是微信支付成功后会回拨这个地址。在这里你可以做一些事情,比如修改订单状态。
然后是签名生成,非常重要:把所有需要的参数放在一个映射中,然后把这些参数排序,然后把商品密钥拼接到后面,用MD5加密,就生成了签名。我还是建议仔细看看签名生成算法,不要想的太复杂,就是排序、拼接、加密三步完成。
最后,准备参数传输。这里的参数传输是以xml的形式。下面是传输的数据,其实是一个大字符串。
你能做到的
string s=" XML " " appidwxd