语言:Java(基于 SpringBoot 实现方案)、XML(微信在 HTTP 协议中的数据传输方案)
工具包:XML 解析包(JDOM),HTTP 请求工具包(ApacheHttp),MD5 签名包(JDK 自带)
一:账号申请
1、需要到微信商户平台进行账号申请,获取商户号(mch_id)和密钥(key)
2、需要在微信开放平台申请注册一个 APP(移动支付、公众号、小程序需要到微信公众平台获取对应的服务 ID),获取 APP ID(app_id)
wx.pay.app.appId = wxe9b480afcd40bf00 #app_id
wx.pay.app.mchId = 1560483200 #商户号
wx.pay.app.privateKey = yKCM9w9GPjqZ4XGrODkDXVxVIALF3000 #秘钥
wx.pay.app.gateUrl = https://api.mch.weixin.qq.com/pay/unifiedorder #微信统一下单接口
wx.pay.app.notifyUrl = http://127.0.0.1:8764/app/pay/weChatPay/notify #回调地址
notifyUrl :自己项目内的API接口、提供微信支付成功回调、要能够通过外网访问。
二、支付流程图
三、代码实现
package com.fxkj.photo.app.pay;
import com.fxkj.common.result.Result;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* @Author admin
* @Description 支付接口
*/
public interface Pay {
/**
* 支付接口
* @param req
* @param resp
* @param params
* @return
* @throws Exception
*/
Result prePay(HttpServletRequest req, HttpServletResponse resp, Map<String, Object> params) throws Exception;
}