語(yǔ)言:Java(基于 SpringBoot 實(shí)現(xiàn)方案)、XML(微信在 HTTP 協(xié)議中的數(shù)據(jù)傳輸方案)
工具包:XML 解析包(JDOM),HTTP 請(qǐng)求工具包(ApacheHttp),MD5 簽名包(JDK 自帶)
一:賬號(hào)申請(qǐng)
1、需要到微信商戶(hù)平臺(tái)進(jìn)行賬號(hào)申請(qǐng),獲取商戶(hù)號(hào)(mch_id)和密鑰(key)
2、需要在微信開(kāi)放平臺(tái)申請(qǐng)注冊(cè)一個(gè) APP(移動(dòng)支付、公眾號(hào)、小程序需要到微信公眾平臺(tái)獲取對(duì)應(yīng)的服務(wù) ID),獲取?APP ID(app_id)
wx.pay.app.appId = wxe9b480afcd40bf00? ? ?#app_id
wx.pay.app.mchId = 1560483200? ? ? ? ? ? ? ? ? ?#商戶(hù)號(hào)
wx.pay.app.privateKey = yKCM9w9GPjqZ4XGrODkDXVxVIALF3000? #秘鑰
wx.pay.app.gateUrl = https://api.mch.weixin.qq.com/pay/unifiedorder? ?#微信統(tǒng)一下單接口
wx.pay.app.notifyUrl = http://127.0.0.1:8764/app/pay/weChatPay/notify? #回調(diào)地址
notifyUrl :自己項(xiàng)目?jī)?nèi)的API接口、提供微信支付成功回調(diào)、要能夠通過(guò)外網(wǎng)訪(fǎng)問(wèn)。
二、支付流程圖

三、代碼實(shí)現(xiàn)
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;
}