【畅购商城】微信支付模块之微信支付二维码
创始人
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

​​​​​​​

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
月入8000+的steam搬砖... 大家好,我是阿阳 今天要给大家介绍的是 steam 游戏搬砖项目,目前...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...