微信 JSAPI 支付的流程是:
服务端根据情况,向微信服务器发起“下单”请求。此处需要提供自己维护唯一的订单号,并要求签名加密。
根据“下单”反馈的微信提供的预支付“订单号”,用刚才下单请求参数同样的签名方式,对几个基本数据进行封包签名。
将签名摘要,和这几个基本数据,传输给 JavaScript 端。
JavaScript 通过微信内置对象的方法,唤起支付,并前端返回支付操作结果。
微信服务端会异步通知服务端,支付结果;此处通知地址是之前“下单”时指定的。
如果因故服务端没有收到通知,可以主动发起查询,使用之前向微信服务端“下单”时提供的自己维护唯一的订单号。
经过试验,我发现了这么几个有意思的现象。
首先,支付参数里边有时间戳,但哪怕过了 5 分钟,这个时间戳及相关配套参数,依然可以用于支付。
其次,在微信预支付订单过期之前,用时间戳生成支付参数,拖到订单过期之后使用,报过期。这意味着微信可能根本就没有去识别微信支付参数里边的时间戳,或许只检查了非常基本的时间顺序性:支付时间戳不得早于预支付下单时间(?未验证)
第三,对于重复支付,具备如下现象。
* 特殊发现:在微信登记订单,是跟微信账号绑定的。一个订单,利用外部系统订单号,换微信去查询,依然是无此订单。
一个微信号 pending ,用另一个微信号再发起支付,报订单与微信号不一致。
一个微信号 cancel ,此微信单,同微信可以再支付,别的微信不能。
一个微信号 ok ,此微信单,同微信报已支付,别的微信报订单与微信号不一致。
本文还发表于在其它网站
CSDN : https://blog.csdn.net/ShaneLooLi/article/details/104021907
中国开源社区: https://my.oschina.net/shane1984/blog/3159557
51CTO : https://blog.51cto.com/shanelooli/2467554
相关推荐
微信支付服务商jsapi支付demo.zip
微信支付 商户平台开发的JS-SDK【Demo下载】 被扫支付 微信内网页支付 扫码支付 VS2010或以上版本能打开
封装好的微信JSAPI支付接口 下载放到项目里就能用
uni-app框架下,开发H5,集成微信JS API支付,调用之前需要安装jweixin-module。代码已经封装好,下载就能用
公司业务需要,花了几天时间,先从V3版本的APP支付开始(APP),后面加了扫码支付(NATIVE),最后加了公众号分享支付(JSAPI).中间参考了很多的项目,包括gitlab的,csdn上的,发现很多都是不可用的,有的是V2版本,大部分只有...
Jsapi支付是微信支付提供的网页端支付接口,适用于在网页上集成微信支付功能。通过调用微信支付的JSAPI接口,开发者可以实现用户在浏览器中无跳转完成支付。这一过程涉及的关键步骤包括获取预支付交易会话标识...
net微信扫码支付、手机网页H5支付、微信端JSAPI支付,里面文档有基本的配置
JSAPI(JavaScript API)是微信支付的一种方式,它允许在网页中调用微信支付接口,用户无须跳转到微信应用,即可完成支付流程。 3. **服务商模式**:在微信支付中,服务商模式是指为其他商家提供支付接入服务的第三...
微信公众号支付demo(包含native jsapi)
手把手的教会你微信支付 很适合支付开发新手
我弄了3天才通,其实很简单 10分钟就能配通,前2天一直在研究 “京东微信wap支付”,发现那是一个坑,必须得有腾讯官方的邀请函 才能开通 WAP支付。 JSASP支付 只能在微信浏览器里。 今天2016.6.22配通,官方支付v3...
微信JSAPI支付DEMO PHP版,通俗易懂 包含支付配置文件 发起支付类文件 异步通知类文件 发起支付的HTMl文件等
JSAPI支付是微信支付的一种方式,它允许用户在微信内或者嵌入微信的H5页面中完成支付流程。开发者需要先调用统一下单接口获取预支付交易会话标识(prepay_id),然后将该标识转化为JSAPI参数,最后在前端页面通过...
它通过微信开放平台获取用户的openid,然后调用微信支付的统一下单接口生成预支付交易会话标识,接着在前端使用获取的prepay_id通过JSAPI调起微信支付,最后用户在微信内完成支付确认。关键步骤包括:获取access_...
本人最近做微信支付,以前上传过单个微信jsapi 的java版本的demo 最近抽时间整理出来包括扫码支付和jsapi支付的版本的demo,代码非常的详细,很多容易出错的地方我都注释了出来,报错后台代码和前台代码的demo,前台...
微信JSAPI(JavaScript API)支付是微信支付提供的一种网页支付方式,适用于在H5页面中进行支付操作。V3版本是其最新版,提供了更加安全和高效的服务。使用JSAPI支付,开发者需要先在后台获取预下单(统一下单)的...
微信支付JSAPI支付是微信官方提供的一个用于网页端支付的接口,主要应用于电商网站、服务类网站等在线交易场景。这个版本是wxpay-sdk的3.0.9更新,相较于官方原版,开发者针对实际使用中遇到的问题进行了修改,使得...
JSAPI全称为JavaScript API,是微信支付提供的一个功能,允许开发者通过在网页中调用微信的JS库来完成支付流程。用户在浏览器中操作,无需跳转到微信APP,提高了用户体验。 这个ASP实现主要包含以下部分: 1. **...
微信支付app 开发,解决你的问题是我的快乐
微信公众号网页支付java实现, 框架spring mvc , 代码可以参考