【畅购商城】微信支付模块之微信支付二维码
创始人
2024-03-26 10:04:39
0次

目录

流程分析

微信支付概述

账号申请

已有账号

​​​​​​​支付接口和SDK(了解)​​​​​​​

​​​​​​​入门案例

统一下单

​​​​​​​查询订单

​​​​​​​JS版二维码:QRCode.js

​​​​​​​概述

​​​​​​​入门案例

​​​​​​​流程分析

​​​​​​​微信支付概述

账号申请

步骤一:注册公众号,根据自身主体类型注册对应的公众号

只能申请服务号,订阅号没有办法申请支付

https://kf.qq.com/product/weixinmp.html#hid=87

步骤二:微信认证,公众号认证后才可申请微信支付

 

步骤三:申请微信支付

登录公众平台,点击左侧菜单【微信支付】,开始填写资料等待审核,审核时间为1-5个工作日内。

 

步骤四:商户账号审核

审核通过之后会往您填写的邮箱里发一封邮件是关于微信支付商户的帐号信息,同时您对公账户上也会收到几毛钱的汇款,需要您查看下具体的金额然后登录微信支付商户平台进行验证

步骤五:在线签署协议

本协议为线上电子协议,签署后方可进行交易及资金结算,签署完立即生效。

步骤六:完成上述步骤,你可以得到调用API用到的账号和密钥

appid:微信公众账号或开放平台APP的唯一标识

mch_id:商户号

key:商户密钥

​​​​​​​已有账号

以下为“传智播客”的微信支付账号

appid: wx8397f8696b538317

mch_id:1473426802

key: T6m9iK73b0kn9g5v426MKfHQH7X8rKwb

​​​​​​​支付接口和SDK(了解)​​​​​​​

微信支付帮助文档地址:https://pay.weixin.qq.com/wiki/doc/api/index.html

手动调用,常见的接口(了解)

接口

下订单

https://api.mch.weixin.qq.com/pay/unifiedorder

查询订单

https://api.mch.weixin.qq.com/pay/orderquery

关闭订单

https://api.mch.weixin.qq.com/pay/closeorder

手动调用整体思路:

根据接口要求,组装请求参数

以XML的方式,通过POST请求,发送给支付接口

微信支付接口,以XML方式给予响应

实际开发中,我们很少直接使用“接口操作”。通常情况下使用微信提供的SDK(工具类)

com.github.wxpay.sdk.WXPay类就是核心操作封装类。

方法名

说明

microPay

刷卡支付

unifiedOrder

统一下单

orderQuery

查询订单

reverse

撤销订单

closeOrder

关闭订单

refund

申请退款

refundQuery

查询退款

downloadBill

下载对账单

report

交易保障

shortUrl

转换短链接

authCodeToOpenid

授权码查询openid

​​​​​​​入门案例

统一下单

在测试项目完成操作:test-wxpay

步骤一:添加依赖

com.github.wxpaywxpay-sdk0.0.3

步骤二:编写配置类,实现WXPayConfig接口

package com.czxy.test.pay;import com.github.wxpay.sdk.WXPayConfig;import java.io.InputStream;/*** Created by liangtong.*/
public class MyWXPayConfig implements WXPayConfig {/*** 应用ID:微信开放平台审核通过的应用APPID* @return*/@Overridepublic String getAppID() {return "wx8397f8696b538317";}/*** 商户号:微信支付分配的商户号* @return*/@Overridepublic String getMchID() {return "1473426802";}/*** 秘钥,用于生成签名(sign)* @return*/@Overridepublic String getKey() {return "T6m9iK73b0kn9g5v426MKfHQH7X8rKwb";}@Overridepublic InputStream getCertStream() {return null;}/*** 连接超时时间,单位是毫秒* @return*/@Overridepublic int getHttpConnectTimeoutMs() {return 0;}/*** 读超时时间,单位是毫秒* @return*/@Overridepublic int getHttpReadTimeoutMs() {return 0;}
}

步骤三:测试类

package com.czxy.test.pay;import com.github.wxpay.sdk.WXPay;import java.util.HashMap;
import java.util.Map;/*** Created by liangtong.*/
public class TestPayUnifiedOrder {public static void main(String[] args) throws Exception {WXPay wxPay = new WXPay(new MyWXPayConfig());Map map=new HashMap();map.put("body","畅购");                          //商品描述map.put("out_trade_no","20200401001");         //订单号map.put("total_fee","1");                       //金额map.put("spbill_create_ip","127.0.0.1");      //终端IPmap.put("notify_url","http://www.baidu.com");//回调地址//JSAPI--JSAPI支付(或小程序支付)、NATIVE--Native支付、APP--app支付,MWEB--H5支付map.put("trade_type","NATIVE");              //交易类型Map result = wxPay.unifiedOrder( map );System.out.println("支付结果:" + result.get("code_url"));System.out.println("返回状态码:" + result.get("return_code"));System.out.println("返回信息:" + result.get("return_msg"));System.out.println("业务结果:" + result.get("result_code"));System.out.println(result);}
}

步骤四:结果

支付结果:weixin://wxpay/bizpayurl?pr=Mfqcl2R

返回状态码:SUCCESS

返回信息:OK

业务结果:SUCCESS

​​​​​​​查询订单

package com.czxy.test.pay;import com.github.wxpay.sdk.WXPay;import java.util.HashMap;
import java.util.Map;/*** Created by liangtong.*/
public class TestPayOrderQuery {public static void main(String[] args) throws Exception {WXPay wxPay = new WXPay(new MyWXPayConfig());Map map=new HashMap();map.put("out_trade_no","20200401001");         //订单号Map result = wxPay.orderQuery( map );System.out.println("返回状态码:" + result.get("return_code"));System.out.println("返回信息:" + result.get("return_msg"));System.out.println("业务结果:" + result.get("result_code"));System.out.println("交易状态:" + result.get("trade_state"));/*SUCCESS—支付成功REFUND—转入退款NOTPAY—未支付CLOSED—已关闭REVOKED—已撤销(刷卡支付)USERPAYING--用户支付中PAYERROR--支付失败*/System.out.println("交易状态:" + result.get("trade_state"));System.out.println("交易状态描述:" + result.get("trade_state_desc"));System.out.println(result);}
}

​​​​​​​JS版二维码:QRCode.js

​​​​​​​概述

QRCode.js 是一个用于生成二维码的 JavaScript 库。主要是通过获取 DOM 的标签,再通过 HTML5

Canvas 绘制而成,不依赖任何库。

​​​​​​​入门案例

拷贝 qrcode.min.js

编写wxpay.html


二维码入门案例

  1. http://localhost:3000/wxpay.html

​​​​​​​

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...