微信支付功能的实现

说明

微信支付提供的方式有很多种,但是本文讲的是H5支付,其他支付的实现方式其实大同小异
H5支付是指商户在微信客户端外的移动端网页展示商品或服务,用户在前述页面确认使用微信支付时,商户发起本服务呼起微信客户端进行支付。

主要用于触屏版的手机浏览器请求微信支付的场景。可以方便的从外部浏览器唤起微信支付。

微信官方支付的开发文档

https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=9_20&index=1

微信支付时序图分析

在这里插入图片描述
文字描述
1、用户在商户侧完成下单,使用微信支付进行支付
2、由商户后台向微信支付发起下单请求(调用统一下单接口)注:交易类型trade_type=MWEB
3、统一下单接口返回支付相关参数给商户后台,如支付跳转url(参数名“mweb_url”),商户通过mweb_url调起
微信支付中间页
4、中间页进行H5权限的校验,安全性检查(此处常见错误请见下文)
5、如支付成功,商户后台会接收到微信侧的异步通知
6、用户在微信支付收银台完成支付或取消支付,返回商户页面(默认为返回支付发起页面)
7、商户在展示页面,引导用户主动发起支付结果的查询
8,9、商户后台判断是否接到收微信侧的支付结果通知,如没有,后台调用我们的订单查询接口确认订单状态
10、展示最终的订单支付结果给用户

与上面相对应的图大概是长下面这样子
在这里插入图片描述
第一步:用户到浏览器当中选择商品进行点击下单,然后浏览器向商户后台系统发起请求下单

第二步:在我们的商户后台系统当中生成订单,之后商户后台系统调微信支付接口下单,然后微信的后台系统给商户后台系统返回一个跳转的url地址,商户后台系统给浏览器返回302消息跳转

第三步:用户点击立即支付(点击url跳转连接),然后跳转到微信后台系统进行支付,支付完成后,微信后台系统会给浏览器返回一个校验结果(用户在浏览器看到支付结果)

第四步:微信后台系统通知商户后台系统该订单的支付情况,然后商户后台系统返回接收结果,这样微信后台就不yoga重复发送支付情况了

用户自己查看订单情况

1.用户点击查看订单情况后,会向商户的后台系统发送一个查询支付结果的请求,商户后台接到请求后,向微信后台系统发送调用查询api,微信后台系统将支付结果返回给商户后台,商户后台再将支付结果返回给浏览器(用户可见)

代码实操(nodejs实现)

1,先布局,写好商品列表页,和下单页面
先下载和引入包

var express = require('express');
var router = express.Router();
// 安装 md5库
const md5 = require('md5');
var urlencode 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值