微信V3支付功能基本实现,并已测试

This commit is contained in:
egan
2021-08-16 22:45:57 +08:00
parent 44a0c90413
commit f761e9e2b8
5 changed files with 13 additions and 14 deletions

View File

@@ -156,10 +156,8 @@ public class StringUtils {
if (StringUtils.isEmpty(s)) {
continue;
}
if (builder.length() > 0) {
builder.append(separator);
}
builder.append(s);
builder.append(s).append(separator);
}
return builder.toString();
}

View File

@@ -54,15 +54,15 @@ public class WxV3PayController {
public void init() {
WxPayConfigStorage wxPayConfigStorage = new WxPayConfigStorage();
wxPayConfigStorage.setAppId("wxc7b993ff15a9f27c");
wxPayConfigStorage.setMchId("1602947766");
wxPayConfigStorage.setAppId("wxc7b993ff15a9f271");
wxPayConfigStorage.setMchId("1602947765");
// wxPayConfigStorage.setKeyPublic("转账公钥,转账时必填");
wxPayConfigStorage.setSecretKey("9bd8f0e7af4841299d782406b7774f56");
wxPayConfigStorage.setNotifyUrl("https://pay.egzosn.com");
wxPayConfigStorage.setReturnUrl("https://pay.egzosn.com");
wxPayConfigStorage.setSecretKey("9bd8f0e7af4841299d782406b7774f52");
wxPayConfigStorage.setNotifyUrl("https://pay.egzosn.com/payback");
wxPayConfigStorage.setReturnUrl("https://pay.egzosn.com/payback");
wxPayConfigStorage.setInputCharset("utf-8");
wxPayConfigStorage.setCertSign(true);
wxPayConfigStorage.setApiClientKeyP12("E:\\Documents\\gitee\\pay-java-parent\\pay-java-demo\\src\\main\\resources\\yifenli_mall.p12");
wxPayConfigStorage.setApiClientKeyP12("yifenli_mall.p12");
wxPayConfigStorage.setCertStoreType(CertStoreType.PATH);
service = new WxPayService(wxPayConfigStorage);
//设置回调消息处理
@@ -142,7 +142,7 @@ public class WxV3PayController {
public byte[] toWxQrPay(BigDecimal price) throws IOException {
//获取对应的支付账户操作工具可根据账户id
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(service.genQrPay(new PayOrder("订单title", "摘要", null == price ? BigDecimal.valueOf(0.01) : price, System.currentTimeMillis() + "", WxTransactionType.NATIVE)), "JPEG", baos);
ImageIO.write(service.genQrPay(new PayOrder("测试商品", "测试商品", null == price ? BigDecimal.valueOf(0.01) : price, UUID.randomUUID().toString().replace("-", ""), WxTransactionType.NATIVE)), "JPEG", baos);
return baos.toByteArray();
}

View File

@@ -134,7 +134,7 @@ public class DefaultWxPayAssistService implements WxPayAssistService {
String token = String.format(WxConst.TOKEN_PATTERN, payConfigStorage.getMchId(), nonceStr, timestamp, serialNumber, sign);
HttpStringEntity entity = new HttpStringEntity(body, ContentType.APPLICATION_JSON);
entity.addHeader(new BasicHeader("Authorization", WxConst.SCHEMA.concat(token)));
entity.addHeader(new BasicHeader("User-Agent", "X-Pay-Service"));
entity.addHeader(new BasicHeader("User-Agent", "Pay-Java-Parent"));
entity.addHeader(new BasicHeader("Accept", APPLICATION_JSON.getMimeType()));
return entity;
}

View File

@@ -1,6 +1,7 @@
package com.egzosn.pay.wx.v3.api;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.TreeMap;
@@ -35,7 +36,7 @@ public class WxParameterStructure {
*/
public Map<String, Object> getPublicParameters() {
Map<String, Object> parameters = new TreeMap<String, Object>();
Map<String, Object> parameters = new LinkedHashMap<>();
parameters.put(WxConst.APPID, payConfigStorage.getAppId());
parameters.put(WxConst.MCH_ID, payConfigStorage.getMchId());
return parameters;

View File

@@ -30,7 +30,7 @@ public final class WxConst {
*/
public static final String SANDBOXNEW = "sandboxnew/";
public static final String APPID = "appid";
public static final String MCH_ID = "mch_id";
public static final String MCH_ID = "mchid";
public static final String SUB_MCH_ID = "sub_mchid";
public static final String SP_MCH_ID = "sp_mchid";
public static final String OUT_TRADE_NO = "out_trade_no";