微信支付,遇到了很多坑,网上也没有讲解

2024-01-23
来源:网络整理

微信小程序调用支付接口进行支付

前段时间在做微信支付,遇到了很多坑。 网上也没有特别明确的解释。 通过借鉴各路人才的经验,我终于完成了。 网上有很多解释。 我只讲一些需要注意的地方和解决办法。 方法。 我就简单说一下我从完全混乱到完成的过程吧。

业务流程:注册小程序账号--》小程序认证--》新增微信商户账号或绑定已有商户账号--》除扫码支付场景外,商户系统首先调用统一下单接口提供微信支付服务后台生成预付款交易订单,返回正确的预付款交易响应ID,然后扫码、APP、小程序等不同场景生成交易字符串发起支付。 具体API接口请参见相关“API列表”

微信提供的接口文档提供了微信支付接口。 您可以直接调用该接口发起微信支付。

文档路径:#ct

然而,当我开始自信地查看所需参数时,我感到困惑。 这些参数是什么?

在这些参数中,这两个是最难理​​解和获取的。 仔细研究发现,获取这个参数需要调用微信提供的另一个接口来统一点餐接口。 原来微信支付需要先预购。这里的时间戳使用的是秒,而不是毫秒。

微信小程序支付流程_微信小程序微信支付流程_微信小程序微信支付实现

文档路径:

这个接口需要在后台通过http请求来调整。

在这些参数中,有两个参数是大家非常熟悉的。 这两个参数在第一步发起微信请求时也有。 后来发现这里的随机串是调用支付时使用的随机串,一定要一致。 ,至于签名,如果你认为是一样的,那你就完全错了。 这里的签名称为主签名,因为付款时需要二次签名。 解释了签名生成算法。 读几遍你就明白了。 我建议读几十遍。

准备好所有这些必需的参数

首先拥有一家商店和商户编号非常重要。

微信小程序微信支付流程_微信小程序支付流程_微信小程序微信支付实现

订单号必须是唯一的。 通知地址是支付成功时微信回调的地址。 您可以在这里进行一些操作,例如修改订单状态。

然后是签名生成。 这很重要:把所有需要的参数放到一个map中,然后对这些参数进行排序,然后将产品密钥拼接到后面并进行MD5加密生成签名。 我仍然建议仔细研究签名生成。 别以为算法太复杂,就是排序、拼接、加密三步而已。

最后一步是准备参数传输。 这里的参数传输是xml形式的。 下面是传输的数据,实际上是一个很大的字符串。

你可以这样做

s=“”

+"wxdxxxxxxxxx" +"10000100" +"24jtlk2j3ltjl2kjlkt3j" +"432l4j5j4325l23k4j5lj34" +"" 我就意思一下了,大家懂就行,其实就是一个字符串,完全可以通过遍历参数map来自己拼接的。

然后把这个大绳子传过去就可以了。 如果上面没有问题的话,它会返回一个字符串的xml,其格式类型是我们拼接的参数。

从中取出我们需要的东西。 最重要的应该是这个,预购id。 这就是我们之前所需要的。

用法如下:='=1k24'

然后是第二个签名。 签名生成顺序与第一次相同。 主要是确定需要哪些参数。

然后将这些参数返回给前台使用,取出来放入即可。

此时前端调用其发起支付。

如果您有任何疑问,请询问

分享