@@ -37,15 +37,12 @@ public class AtsCreatPayOrderV3Request extends AbstractAtsRequest<AtsCreatPayOrd | |||
@NotNull | |||
private TradeType tradeType;//交易方式 | |||
protected String appid;//应用ID | |||
@NotBlank | |||
protected String appid;//应用ID spAppid;服务商应用ID | |||
protected String spAppid;//服务商应用ID | |||
protected String spMchId;//服务商商户号 | |||
protected String subAppid;//子商户应用ID | |||
protected String subMchId;//子商户商户号 | |||
@NotBlank | |||
private String description;//商品描述 | |||
@NotBlank | |||
@@ -87,7 +84,7 @@ public class AtsCreatPayOrderV3Request extends AbstractAtsRequest<AtsCreatPayOrd | |||
private String type;//场景类型,示例值:iOS, Android, Wap | |||
@NotBlank | |||
protected String mchid;//直连商户号 | |||
protected String mchid;//直连商户号 spMchId服务商商户号 | |||
@NotBlank | |||
private String apiV3Key; // API V3密钥 | |||
@NotBlank | |||
@@ -99,15 +96,12 @@ public class AtsCreatPayOrderV3Request extends AbstractAtsRequest<AtsCreatPayOrd | |||
public void validate(ErrorMsgBuilder builder) { | |||
if (createType == 1){ | |||
builder.validFieldNotBlank("appid", appid); | |||
// builder.validFieldNotBlank("mchid", mchid); | |||
if (TradeType.JSAPI.equals(tradeType)) { | |||
builder.validFieldNotBlank("openid", openid); | |||
} | |||
} | |||
if (createType == 2){ | |||
builder.validFieldNotBlank("spAppid", spAppid); | |||
builder.validFieldNotBlank("spMchId", spMchId); | |||
builder.validFieldNotBlank("subMchId", subMchId); | |||
if (TradeType.JSAPI.equals(tradeType)) { | |||
builder.validField("notBlank", "spOpenid/subOpenid", |
@@ -9,37 +9,15 @@ import lombok.Data; | |||
* @Filename:AtsCreatPayOrder | |||
* @description: | |||
*/ | |||
//@Getter | |||
//@Setter | |||
@Data | |||
public class AtsCreatPayOrderV3Response extends AbstractAtsResponse { | |||
/** 外部订单号 */ | |||
private String externalOrderNo; | |||
// // APP,JSAPI参数 | |||
// private String appId; //支付渠道应用ID | |||
// private String partnerId;//商户号 | |||
// private String prepayId;//预支付交易会话ID | |||
// private String wxPackage;//订单详情扩展字符串 | |||
// private String noncestr;//随机字符串 | |||
// private String timestamp;//时间戳 | |||
// private String sign;//签名 | |||
// //JSAPI参数 | |||
// private String signType;//签名方式 | |||
// // H5参数 | |||
// private String h5Url; | |||
// private String form;// 支付宝响应表单 | |||
// // Native参数 | |||
// private String codeUrl; | |||
// private String tranPackage;// 支付宝预下单请求生成的二维码码串 | |||
//JSAPI支付参数 | |||
private String signType; | |||
private String paySign; | |||
//app | |||
// private String appid; | |||
// private String noncestr; | |||
// private String timestamp; | |||
private String partnerId;//商户号 | |||
private String prepayId;//预支付交易会话ID | |||
private String sign; | |||
@@ -48,7 +26,6 @@ public class AtsCreatPayOrderV3Response extends AbstractAtsResponse { | |||
private String timeStamp; | |||
private String nonceStr; | |||
private String packageValue;//订单详情扩展字符串 | |||
//h5参数 | |||
private String h5Url; | |||
// Native参数 |
@@ -42,7 +42,7 @@ public class AtsQueryPayResultRequest extends AbstractAtsRequest<AtsQueryPayResu | |||
private TradeType tradeType;//交易方式 | |||
@NotBlank | |||
protected String mchid;//直连商户号 | |||
protected String mchid;//直连商户号 spMchid;服务商户号 | |||
@NotBlank | |||
private String apiV3Key; // API V3密钥 | |||
@NotBlank | |||
@@ -50,13 +50,11 @@ public class AtsQueryPayResultRequest extends AbstractAtsRequest<AtsQueryPayResu | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
private String spMchid;//服务商户号 | |||
private String subMchid;//子商户号 | |||
@Override | |||
protected void validate(ErrorMsgBuilder builder) { | |||
if (createType == 2){ | |||
builder.validFieldNotBlank("spMchid", spMchid); | |||
builder.validFieldNotBlank("subMchid", subMchid); | |||
} | |||
@@ -23,9 +23,9 @@ public class AtsQueryPayResultResponse extends AbstractAtsResponse { | |||
* + 服务商 | |||
*/ | |||
private String appid;//公众账号ID -是 | |||
private String appid;//公众账号ID - spAppid+是 | |||
private String mchid;//商户号 -是 | |||
private String mchid;//商户号 - spMchid+是 | |||
private String outTradeNo;//商户订单号 是 | |||
@@ -52,8 +52,6 @@ public class AtsQueryPayResultResponse extends AbstractAtsResponse { | |||
private String currency;//货币类型 否 | |||
//==========================================服务商 | |||
private String spAppid;//服务商APPID +是 | |||
private String spMchid;//服务商商户号 +是 | |||
private String subAppid;//子商户APPID +否 | |||
private String subMchid;//子商户号 +是 | |||
private String spOpenid;// 用户服务商标识 +否 |
@@ -78,8 +78,8 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
private AtsCreatPayOrderV3Response getPrepayNativeResponse(AtsCreatPayOrderV3Request req, RSAAutoCertificateConfig config) { | |||
NativePayService nativeService = new NativePayService.Builder().config(config).build(); | |||
com.wechat.pay.java.service.partnerpayments.nativepay.model.PrepayRequest request = new com.wechat.pay.java.service.partnerpayments.nativepay.model.PrepayRequest(); | |||
request.setSpAppid(req.getSpAppid()); | |||
request.setSpMchid(req.getSpMchId()); | |||
request.setSpAppid(req.getAppid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubAppid(req.getSubAppid()); | |||
request.setSubMchid(req.getSubMchId()); | |||
request.setDescription(req.getDescription()); | |||
@@ -107,8 +107,8 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
private AtsCreatPayOrderV3Response getPrepayAppResponse(AtsCreatPayOrderV3Request req, RSAAutoCertificateConfig config) { | |||
AppServiceExtension appService = new AppServiceExtension.Builder().config(config).build(); | |||
com.wechat.pay.java.service.partnerpayments.app.model.PrepayRequest request = new com.wechat.pay.java.service.partnerpayments.app.model.PrepayRequest(); | |||
request.setSpAppid(req.getSpAppid()); | |||
request.setSpMchid(req.getSpMchId()); | |||
request.setSpAppid(req.getAppid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubAppid(req.getSubAppid()); | |||
request.setSubMchid(req.getSubMchId()); | |||
request.setDescription(req.getDescription()); | |||
@@ -125,7 +125,7 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
sceneInfo.setPayerClientIp(req.getPayerClientIp()); | |||
request.setSceneInfo(sceneInfo); | |||
} | |||
com.wechat.pay.java.service.partnerpayments.app.model.PrepayWithRequestPaymentResponse prepay = appService.prepayWithRequestPayment(request, req.getSpAppid()); | |||
com.wechat.pay.java.service.partnerpayments.app.model.PrepayWithRequestPaymentResponse prepay = appService.prepayWithRequestPayment(request, req.getAppid()); | |||
AtsCreatPayOrderV3Response orderV3Response = new AtsCreatPayOrderV3Response(); | |||
orderV3Response.setAppId(prepay.getAppid()); | |||
orderV3Response.setPartnerId(prepay.getPartnerId()); | |||
@@ -142,8 +142,8 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
private AtsCreatPayOrderV3Response getPrepayJsapiResponse(AtsCreatPayOrderV3Request req, RSAAutoCertificateConfig config) { | |||
JsapiServiceExtension jsapiService = new JsapiServiceExtension.Builder().config(config).build(); | |||
PrepayRequest request = new PrepayRequest(); | |||
request.setSpAppid(req.getSpAppid()); | |||
request.setSpMchid(req.getSpMchId()); | |||
request.setSpAppid(req.getAppid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubAppid(req.getSubAppid()); | |||
request.setSubMchid(req.getSubMchId()); | |||
request.setDescription(req.getDescription()); | |||
@@ -164,7 +164,7 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
} | |||
request.setAttach(req.getAttach()); | |||
//请求 | |||
PrepayWithRequestPaymentResponse prepay = jsapiService.prepayWithRequestPayment(request, req.getSpAppid()); | |||
PrepayWithRequestPaymentResponse prepay = jsapiService.prepayWithRequestPayment(request, req.getAppid()); | |||
AtsCreatPayOrderV3Response orderV3Response = new AtsCreatPayOrderV3Response(); | |||
orderV3Response.setAppId(prepay.getAppId()); | |||
orderV3Response.setTimeStamp(prepay.getTimeStamp()); | |||
@@ -180,8 +180,8 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
private AtsCreatPayOrderV3Response getPrepayMwebResponse(AtsCreatPayOrderV3Request req, RSAAutoCertificateConfig config) { | |||
H5Service h5Service = new H5Service.Builder().config(config).build(); | |||
com.wechat.pay.java.service.partnerpayments.h5.model.PrepayRequest request = new com.wechat.pay.java.service.partnerpayments.h5.model.PrepayRequest(); | |||
request.setSpAppid(req.getSpAppid()); | |||
request.setSpMchid(req.getSpMchId()); | |||
request.setSpAppid(req.getAppid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubAppid(req.getSubAppid()); | |||
request.setSubMchid(req.getSubMchId()); | |||
request.setDescription(req.getDescription()); | |||
@@ -211,10 +211,12 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService service = new com.wechat.pay.java.service.partnerpayments.nativepay.NativePayService.Builder().config(config).build(); | |||
com.wechat.pay.java.service.partnerpayments.nativepay.model.QueryOrderByOutTradeNoRequest request = new com.wechat.pay.java.service.partnerpayments.nativepay.model.QueryOrderByOutTradeNoRequest(); | |||
request.setOutTradeNo(req.getExternalOrderNo()); | |||
request.setSpMchid(req.getSpMchid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubMchid(req.getSubMchid()); | |||
com.wechat.pay.java.service.partnerpayments.nativepay.model.Transaction transaction = service.queryOrderByOutTradeNo(request); | |||
AtsQueryPayResultResponse response = copyProperties(transaction, new AtsQueryPayResultResponse()); | |||
response.setAppid(transaction.getSpAppid()); | |||
response.setMchid(transaction.getSpMchid()); | |||
if (transaction.getPayer() != null) { | |||
response.setSpOpenid(transaction.getPayer().getSpOpenid()); | |||
response.setSubOpenid(transaction.getPayer().getSubOpenid()); | |||
@@ -237,10 +239,12 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
com.wechat.pay.java.service.partnerpayments.app.model.QueryOrderByOutTradeNoRequest request = | |||
new com.wechat.pay.java.service.partnerpayments.app.model.QueryOrderByOutTradeNoRequest(); | |||
request.setOutTradeNo(req.getExternalOrderNo()); | |||
request.setSpMchid(req.getSpMchid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubMchid(req.getSubMchid()); | |||
com.wechat.pay.java.service.partnerpayments.app.model.Transaction transaction = appService.queryOrderByOutTradeNo(request); | |||
AtsQueryPayResultResponse response = copyProperties(transaction, new AtsQueryPayResultResponse()); | |||
response.setAppid(transaction.getSpAppid()); | |||
response.setMchid(transaction.getSpMchid()); | |||
if (transaction.getPayer() != null) { | |||
response.setSpOpenid(transaction.getPayer().getSpOpenid()); | |||
response.setSubOpenid(transaction.getPayer().getSubOpenid()); | |||
@@ -263,10 +267,12 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
com.wechat.pay.java.service.partnerpayments.jsapi.model.QueryOrderByOutTradeNoRequest request = | |||
new com.wechat.pay.java.service.partnerpayments.jsapi.model.QueryOrderByOutTradeNoRequest(); | |||
request.setOutTradeNo(req.getExternalOrderNo()); | |||
request.setSpMchid(req.getSpMchid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubMchid(req.getSubMchid()); | |||
com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction transaction = jsapiService.queryOrderByOutTradeNo(request); | |||
AtsQueryPayResultResponse response = copyProperties(transaction, new AtsQueryPayResultResponse()); | |||
response.setAppid(transaction.getSpAppid()); | |||
response.setMchid(transaction.getSpMchid()); | |||
if (transaction.getPayer() != null) { | |||
response.setSpOpenid(transaction.getPayer().getSpOpenid()); | |||
response.setSubOpenid(transaction.getPayer().getSubOpenid()); | |||
@@ -289,10 +295,12 @@ public class WxPartnerPayV3 extends AbstractManager { | |||
com.wechat.pay.java.service.partnerpayments.h5.model.QueryOrderByOutTradeNoRequest request = | |||
new com.wechat.pay.java.service.partnerpayments.h5.model.QueryOrderByOutTradeNoRequest(); | |||
request.setOutTradeNo(req.getExternalOrderNo()); | |||
request.setSpMchid(req.getSpMchid()); | |||
request.setSpMchid(req.getMchid()); | |||
request.setSubMchid(req.getSubMchid()); | |||
com.wechat.pay.java.service.partnerpayments.h5.model.Transaction transaction = h5Service.queryOrderByOutTradeNo(request); | |||
AtsQueryPayResultResponse response = copyProperties(transaction, new AtsQueryPayResultResponse()); | |||
response.setAppid(transaction.getSpAppid()); | |||
response.setMchid(transaction.getSpMchid()); | |||
if (transaction.getPayer() != null) { | |||
response.setSpOpenid(transaction.getPayer().getSpOpenid()); | |||
response.setSubOpenid(transaction.getPayer().getSubOpenid()); |
@@ -1,10 +1,6 @@ | |||
package cn.com.taiji.ats.manager.handler; | |||
import cn.com.taiji.ats.manager.weixin.CreatePayOrderV2Manager; | |||
import cn.com.taiji.ats.manager.weixin.CreatePayOrderV3Manager; | |||
import cn.com.taiji.ats.manager.weixin.QueryPayResultManager; | |||
import cn.com.taiji.ats.manager.weixin.VehicleUserStateManager; | |||
import cn.com.taiji.ats.manager.weixin.WxMpIsSubscribedManager; | |||
import cn.com.taiji.ats.manager.weixin.*; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeRequest; | |||
import cn.com.taiji.core.model.comm.protocol.AbstractSignTypeResponse; | |||
import cn.com.taiji.core.model.comm.protocol.SignJsonRequest; |
@@ -1,21 +1,14 @@ | |||
package cn.com.taiji.ats.manager.weixin; | |||
import cn.com.taiji.ats.manager.comm.WxPartnerPayV3; | |||
import cn.com.taiji.ats.manager.comm.WxPayV3; | |||
import cn.com.taiji.common.manager.AbstractManager; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.AtsCreatPayOrderV3Request; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.AtsCreatPayOrderV3Response; | |||
import cn.com.taiji.core.model.comm.protocol.valid.GlyServiceError; | |||
import com.github.binarywang.wxpay.bean.request.WxPayPartnerUnifiedOrderV3Request; | |||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request; | |||
import com.github.binarywang.wxpay.bean.result.WxPayUnifiedOrderV3Result; | |||
import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum; | |||
import com.github.binarywang.wxpay.config.WxPayConfig; | |||
import com.github.binarywang.wxpay.exception.WxPayException; | |||
import com.github.binarywang.wxpay.service.WxPayService; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
import java.util.Base64; | |||
/** | |||
* @Author:ChenChao | |||
@@ -25,121 +18,22 @@ import java.util.Base64; | |||
*/ | |||
@Service | |||
public class CreatePayOrderV3Manager extends AbstractManager { | |||
@Autowired | |||
private WxPayService wxPayService; | |||
@Autowired | |||
private WxPayV3 wxPayV3; | |||
@Autowired | |||
private WxPartnerPayV3 wxPartnerPayV3; | |||
public AtsCreatPayOrderV3Response serviceHandle(AtsCreatPayOrderV3Request req) throws ServiceHandleException { | |||
logger.info("微信支付下单{}",req.toJson()); | |||
//格式校验 | |||
req.validate(); | |||
//配置信息 | |||
WxPayConfig wxPayConfig = initConfig(req); | |||
wxPayService.setConfig(wxPayConfig); | |||
TradeTypeEnum tradeType= null; | |||
Object orderV3 = null; | |||
switch (req.getTradeType()){ | |||
case NATIVE: | |||
tradeType = TradeTypeEnum.NATIVE; | |||
break; | |||
case JSAPI: | |||
tradeType = TradeTypeEnum.JSAPI; | |||
break; | |||
case MWEB: | |||
tradeType = TradeTypeEnum.H5; | |||
break; | |||
case APP: | |||
tradeType = TradeTypeEnum.APP; | |||
break; | |||
default: | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException("不支持的支付类型"); | |||
} | |||
AtsCreatPayOrderV3Response orderV3Response = new AtsCreatPayOrderV3Response(); | |||
if (req.getCreateType() == 1){//单独下单 | |||
WxPayUnifiedOrderV3Request orderV3Request = getWxPayUnifiedOrderV3Request(req); | |||
try { | |||
orderV3 = wxPayService.createOrderV3(tradeType, orderV3Request); | |||
} catch (WxPayException e) { | |||
logger.error("微信支付V3统一单独下单失败:{}", e.getMessage()); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(e.getMessage()); | |||
} | |||
if (req.getCreateType() == 1){ | |||
return wxPayV3.getPrepayResponse(req); | |||
}else{ | |||
return wxPartnerPayV3.getPrepayResponse(req); | |||
} | |||
else | |||
if(req.getCreateType() == 2){//商户下单 | |||
WxPayPartnerUnifiedOrderV3Request serviceOrderV3Request = getWxPayPartnerUnifiedOrderV3Request(req); | |||
try { | |||
orderV3 = wxPayService.createPartnerOrderV3(tradeType, serviceOrderV3Request); | |||
} catch (WxPayException e) { | |||
logger.error("微信支付V3统一服务商下单失败:{}", e.getMessage()); | |||
throw GlyServiceError.BUSINESS_VALIDATE_ERR.toHandleException(e.getMessage()); | |||
} | |||
} | |||
copyProperties(orderV3, orderV3Response); | |||
if (TradeTypeEnum.APP.equals(tradeType)) { | |||
WxPayUnifiedOrderV3Result.AppResult appResult = (WxPayUnifiedOrderV3Result.AppResult) orderV3; | |||
orderV3Response.setAppId(appResult.getAppid()); | |||
orderV3Response.setTimeStamp(appResult.getTimestamp()); | |||
orderV3Response.setNonceStr(appResult.getNoncestr()); | |||
} | |||
if (TradeTypeEnum.NATIVE.equals(tradeType)) orderV3Response.setCodeUrl(orderV3.toString()); | |||
if (TradeTypeEnum.H5.equals(tradeType)) orderV3Response.setH5Url(orderV3.toString()); | |||
orderV3Response.setExternalOrderNo(req.getOutTradeNo()); | |||
return orderV3Response; | |||
} | |||
//组装v3单独下单请求微信数据 | |||
private WxPayUnifiedOrderV3Request getWxPayUnifiedOrderV3Request(AtsCreatPayOrderV3Request req) { | |||
WxPayUnifiedOrderV3Request orderV3Request = copyProperties(req, new WxPayUnifiedOrderV3Request()); | |||
WxPayUnifiedOrderV3Request.Amount amount = new WxPayUnifiedOrderV3Request.Amount(); | |||
amount.setTotal(req.getTotal()); | |||
amount.setCurrency(req.getCurrency()); | |||
orderV3Request.setAmount(amount); | |||
WxPayUnifiedOrderV3Request.Payer payer = new WxPayUnifiedOrderV3Request.Payer(); | |||
payer.setOpenid(req.getOpenid()); | |||
orderV3Request.setPayer(payer); | |||
if (hasText(req.getPayerClientIp())) { | |||
WxPayUnifiedOrderV3Request.SceneInfo sceneInfo = new WxPayUnifiedOrderV3Request.SceneInfo(); | |||
sceneInfo.setPayerClientIp(req.getPayerClientIp()); | |||
sceneInfo.setH5Info(new WxPayUnifiedOrderV3Request.H5Info().setType(req.getType())); | |||
orderV3Request.setSceneInfo(sceneInfo); | |||
} | |||
return orderV3Request; | |||
} | |||
//组装v3服务商下单请求微信数据 | |||
private WxPayPartnerUnifiedOrderV3Request getWxPayPartnerUnifiedOrderV3Request(AtsCreatPayOrderV3Request req) { | |||
WxPayPartnerUnifiedOrderV3Request serviceOrderV3Request = copyProperties(req, new WxPayPartnerUnifiedOrderV3Request()); | |||
WxPayPartnerUnifiedOrderV3Request.Amount amount = new WxPayPartnerUnifiedOrderV3Request.Amount(); | |||
amount.setTotal(req.getTotal()); | |||
amount.setCurrency(req.getCurrency()); | |||
serviceOrderV3Request.setAmount(amount); | |||
WxPayPartnerUnifiedOrderV3Request.Payer payer = new WxPayPartnerUnifiedOrderV3Request.Payer(); | |||
payer.setSubOpenid(req.getSubOpenid()); | |||
payer.setSpOpenid(req.getSpOpenid()); | |||
serviceOrderV3Request.setPayer(payer); | |||
if (hasText(req.getPayerClientIp())) { | |||
WxPayPartnerUnifiedOrderV3Request.SceneInfo sceneInfo = new WxPayPartnerUnifiedOrderV3Request.SceneInfo(); | |||
sceneInfo.setPayerClientIp(req.getPayerClientIp()); | |||
sceneInfo.setH5Info(new WxPayPartnerUnifiedOrderV3Request.H5Info().setType(req.getType())); | |||
serviceOrderV3Request.setSceneInfo(sceneInfo); | |||
} | |||
return serviceOrderV3Request; | |||
} | |||
//配置信息 | |||
private WxPayConfig initConfig(AtsCreatPayOrderV3Request req) { | |||
WxPayConfig wxPayConfig = new WxPayConfig(); | |||
wxPayConfig.setAppId(req.getAppid()); | |||
wxPayConfig.setMchId(req.getMchid()); | |||
wxPayConfig.setMchKey(req.getApiV3Key()); | |||
wxPayConfig.setSubAppId(req.getSubAppid()); | |||
wxPayConfig.setSubMchId(req.getSubMchId()); | |||
wxPayConfig.setNotifyUrl(req.getNotifyUrl()); | |||
wxPayConfig.setApiV3Key(req.getApiV3Key()); | |||
String s = Base64.getEncoder().encodeToString(req.getPrivateKey().getBytes()); | |||
wxPayConfig.setPrivateKeyString(s); | |||
wxPayConfig.setCertSerialNo(req.getSerialNo()); | |||
if (hasText(req.getApiV3Key())) wxPayConfig.setApiV3Key(req.getApiV3Key()); | |||
return wxPayConfig; | |||
} | |||
} |
@@ -1,39 +0,0 @@ | |||
package cn.com.taiji.ats.manager.weixin; | |||
import cn.com.taiji.ats.manager.comm.WxPartnerPayV3; | |||
import cn.com.taiji.ats.manager.comm.WxPayV3; | |||
import cn.com.taiji.common.manager.AbstractManager; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.AtsCreatPayOrderV3Request; | |||
import cn.com.taiji.core.model.comm.protocol.ats.weiXin.AtsCreatPayOrderV3Response; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Service; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/5/12 10:04 | |||
* @Filename:CreatePayOrderV3Manager | |||
* @description: | |||
*/ | |||
@Service | |||
public class CreatePayOrderV3Manager2 extends AbstractManager { | |||
@Autowired | |||
private WxPayV3 wxPayV3; | |||
@Autowired | |||
private WxPartnerPayV3 wxPartnerPayV3; | |||
public AtsCreatPayOrderV3Response serviceHandle(AtsCreatPayOrderV3Request req) throws ServiceHandleException { | |||
logger.info("微信支付下单{}",req.toJson()); | |||
//格式校验 | |||
req.validate(); | |||
if (req.getCreateType() == 1){ | |||
return wxPayV3.getPrepayResponse(req); | |||
}else{ | |||
return wxPartnerPayV3.getPrepayResponse(req); | |||
} | |||
} | |||
} |
@@ -1,6 +1,6 @@ | |||
package cn.com.taiji.ats.web; | |||
import cn.com.taiji.ats.manager.weixin.CreatePayOrderV3Manager2; | |||
import cn.com.taiji.ats.manager.weixin.CreatePayOrderV3Manager; | |||
import cn.com.taiji.ats.manager.weixin.QueryPayResultManager; | |||
import cn.com.taiji.ats.manager.weixin.VehicleUserStateManager; | |||
import cn.com.taiji.common.manager.net.http.ServiceHandleException; | |||
@@ -13,14 +13,12 @@ import com.google.zxing.WriterException; | |||
import com.google.zxing.common.BitMatrix; | |||
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel; | |||
import org.springframework.beans.factory.annotation.Autowired; | |||
import org.springframework.stereotype.Controller; | |||
import org.springframework.web.bind.annotation.*; | |||
import javax.imageio.ImageIO; | |||
import javax.servlet.http.HttpServletResponse; | |||
import java.awt.*; | |||
import java.awt.image.BufferedImage; | |||
import java.net.InetAddress; | |||
import java.util.HashMap; | |||
import java.util.Map; | |||
@@ -36,7 +34,7 @@ import static com.zgglyun.common.model.SignOperation.logger; | |||
public class TestController { | |||
@Autowired | |||
private CreatePayOrderV3Manager2 createPayOrderV3Manager2; | |||
private CreatePayOrderV3Manager createPayOrderV3Manager2; | |||
@RequestMapping(value = "/common/test", method = {RequestMethod.GET}) | |||
public AtsCreatPayOrderV3Response test(@RequestBody AtsCreatPayOrderV3Request request) { | |||
// request.setApiV3Key("fe24336ea45045adb707dc2c2310416a"); | |||
@@ -97,11 +95,11 @@ public class TestController { | |||
} | |||
return atsVehicleUserStateResponse; | |||
} | |||
//服务商 codeUrl = weixin://wxpay/bizpayurl?pr=14g4kOez1 | |||
@GetMapping("qrCode") | |||
public void qrcode(HttpServletResponse response) throws Exception { | |||
public void qrcode(HttpServletResponse response,@RequestBody TestModel model) throws Exception { | |||
String data = "weixin://wxpay/bizpayurl?pr=OeLKIGGz1"; | |||
BufferedImage image = createImage(data,200,200); | |||
BufferedImage image = createImage(model.getData(), 200,200); | |||
ImageIO.write(image, "png", response.getOutputStream()); | |||
} | |||
@@ -0,0 +1,15 @@ | |||
package cn.com.taiji.ats.web; | |||
import lombok.Data; | |||
/** | |||
* @Author:ChenChao | |||
* @Date:2025/5/16 16:27 | |||
* @Filename:TestModel | |||
* @description: | |||
*/ | |||
@Data | |||
public class TestModel { | |||
private String data; | |||
} |