最近搞了个团油的项目,还是一个星期就干出来的项目,其中的事情就不多说了,过来人都知道。在这里介绍一下微信的APP支付吧
首先第一步,从网上找到微信的开发文档,看看你是哪种支付,是哪种支付就点哪种支付。我是APP支付就演示这个了。
到了这里 我建议开发者先去把业务流程仔细看一遍,知道我们后台要干啥,前台要干啥。(其实方便甩锅)
这里我就不再上业务流程的图了,直接说API
我没有做退款功能,只有支付功能,但是后台其实只用到了统一下单这个接口,让我们看一下需要哪些必填参数
微信后台可以直接给我们的有3个必填的参数,也是最重要的3个参数
应用id(APP_ID),商户号(MCH_ID),应用对应的秘钥(APP_KEY)
这3个参数可以从微信的商户平台取,我自己没有就不演示了
在这里上代码
我的配置类,涉及隐私的地方,我用*代替
package com.thundersdata.backend.basic.configure;
import com.github.wxpay.sdk.WXPayConfig;
import org.apache.poi.util.IOUtils;
import java.io.InputStream;
/**
* @Author: wrc
* @Classname MyWxpayConfig
* @Description TODO
* @Date 2020/5/28 13:38
* @Created wrc
*/
public class MyWxpayConfig implements WXPayConfig {
private byte [] certData;
public MyWxpayConfig() throws Exception{
InputStream certStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("cert/apiclient_cert.p12");
this.certData = IOUtils.toByteArray(certStream);
certStream.close();
}
/**
* 微信开发平台应用ID, 从微信商户取
*/
public static final String APP_ID = "****";
/**
* 应用对应的凭证
*/
// public static final String APP_SECRET = "";
/**
* 应用对应的密钥, 从微信商户取
*/
public static final String APP_KEY = "****";
/**
* 微信支付商户号, 从微信商户取
*/
public static final String MCH_ID = "*****";
/**
* 商品描述
*/
public static final String BODY = "付款";
/**
* 商户号对应的密钥
*/
// public static final String PARTNER_key = "";
/**
* 商户id 非必填
*/
public static final String PARTNER_ID = "*******";
/**
* 常量固定值
*/
public static final String GRANT_TYPE = "client_credential";
/**
* 获取预支付id的接口url 写死的地址
*/
public static String GATEURL = "https://api.mch.weixin.qq.com/pay/unifiedorder";
/**
* 微信服务器回调通知url 自己的回调接口,一定要是是域名访问才行,建议搞个nginx反向代理一下,在nginx上配置一下可以获取真实的IP地址
*/
public static String NOTIFY_URL = "https://****.com/Pay/wx_back"; //可以访问的url
/**
* 微信服务器查询订单url 写死的地址
*/
public static String ORDER_QUERY = "https://api.mch.weixin.qq.com/pay/orderque