【畅购商城】微信支付模块之微信支付二维码
创始人
2024-03-26 09:13:16
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

​​​​​​​

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...