1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 微信js支付换服务器 微信内网页支付(微信 JSAPI 支付)的一点经验

微信js支付换服务器 微信内网页支付(微信 JSAPI 支付)的一点经验

时间:2023-07-25 02:12:16

相关推荐

微信js支付换服务器 微信内网页支付(微信 JSAPI 支付)的一点经验

微信 JSAPI 支付的流程是:

服务端根据情况,向微信服务器发起“下单”请求。此处需要提供自己维护唯一的订单号,并要求签名加密。

根据“下单”反馈的微信提供的预支付“订单号”,用刚才下单请求参数同样的签名方式,对几个基本数据进行封包签名。

将签名摘要,和这几个基本数据,传输给 JavaScript 端。

JavaScript 通过微信内置对象的方法,唤起支付,并前端返回支付操作结果。

微信服务端会异步通知服务端,支付结果;此处通知地址是之前“下单”时指定的。

如果因故服务端没有收到通知,可以主动发起查询,使用之前向微信服务端“下单”时提供的自己维护唯一的订单号。

.

经过试验,我发现了这么几个有意思的现象。

首先,支付参数里边有时间戳,但哪怕过了 5 分钟,这个时间戳及相关配套参数,依然可以用于支付。

.

其次,在微信预支付订单过期之前,用时间戳生成支付参数,拖到订单过期之后使用,报过期。这意味着微信可能根本就没有去识别微信支付参数里边的时间戳,或许只检查了非常基本的时间顺序性:支付时间戳不得早于预支付下单时间(?未验证)

.

第三,对于重复支付,具备如下现象。

○ 特殊发现:在微信登记订单,是跟微信账号绑定的。一个订单,利用外部系统订单号,换微信去查询,依然是无此订单。

一个微信号 pending ,用另一个微信号再发起支付,报订单与微信号不一致。

一个微信号 cancel ,此微信单,同微信可以再支付,别的微信不能。

一个微信号 ok ,此微信单,同微信报已支付,别的微信报订单与微信号不一致。

.

本文还发表于在其它网站

CSDN : /ShaneLooLi/article/details/104021907

ITeye : /blog/surmounting-2512113

中国开源社区: /shane1984/blog/3159557

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。