微信公众号JSAPI自费支付总结


前言

本编章主要是通过运行一个自费测试demo使其能够快速了解微信自费支付的实现流程, 也是个人实现微信自费demo之后的记录、总结

官方文档:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1


一、准备操作

进行微信自费支付之前请先获得以下几项必要条件,公众号和商户号需要绑定

名称 字段名 示例值 描述
公众号ID appId wxa1234abc456b13dc 需要支付的公众号
商户号ID mchId 15312345681 支付收账的账号
商户号密钥 mchKey H793bz123456789abcdefg77FAd 商户号密钥
域名 isyoubao.cn 微信支付使用的域名
服务器 116.xxx.xx.81 发布项目的服务器

1.公众号ID

打开微信公众平台,登录对应公众号,在基本配置-公众号开发信息中获取
在这里插入图片描述

2.商户号

登录微信商户号:https://pay.weixin.qq.com
账户中心=》商户信息=》账户信息
在这里插入图片描述

3.商户号密钥

商户号密钥:账户中心=》API安全=》API密钥(需要保存,未保存忘记之后只能重置
在这里插入图片描述

4.域名、服务器

用自己的域名或者服务器就好了,腾讯云,阿里云都可以

二、步入正题

1. 支付流程

初始化订单数据=》调用微信统一下单接口=》通过JS调起微信支付请求=》是否支付成功
在这里插入图片描述

2. 初始化订单数据

初始化数据其实就是创建一份模拟订单用于调用统一下单接口(可根据自己实际业务情况进行修改)
具体参数描述见:统一下单请求参数

WxPayUnifiedOrderRequest wxPay = new WxPayUnifiedOrderRequest();
        wxPay.setAppid("wxa123abc45613dc");
        wxPay.setTotalFee(1);
        wxPay.setNonceStr(RandomUtils.getRandomStr());
        wxPay.setOutTradeNo(RandomUtils.getRandomStr());
        //用户openId,每个公众号下对应每个用户的唯一标识
        wxPay.setOpenid("og6qg123456abcdefgWrllnyY");
        wxPay.setBody("测试支付");
        wxPay.setSpbillCreateIp("192.168.8.191");
        wxPay.setNotifyUrl("https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind/2.9.5");
        wxPay.setTradeType("JSAPI");

        String sign1 = MakeSign.makeSign(wxPay);
        wxPay.setSign(sign1);

3.获取wxService实例

该支付使用了第三方包,new出实例,得到他的实现WxPayServiceImpl

    public WxPayService wxService() {
   
        WxPayConfig payConfig = new WxPayConfig();
        payConfig.setAppId("wxa0abcd12345613dc");
        payConfig.setMchId("1531234561");
        payConfig.setMchKey
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值