@@ -43,6 +43,10 @@ public class CommonPayConfig extends StringPropertyUUIDEntity { | |||
@Size(max = 3000) | |||
@Column(name = "WX_PRIVATEKEY") | |||
private String wxPrivatekey;//微信V3私钥-apiclient_key.pem | |||
@Column(name = "WX_PUBLICKEY_ID") | |||
private String wxPublicKeyId;//微信V3公钥ID | |||
@Column(name = "WX_PUBLIC_KEY") | |||
private String wxPublicKey;//微信V3公钥-pub_key.pem | |||
@Size(max = 50) | |||
@Column(name = "WX_SERIAL_NO") | |||
private String wxSerialNo;//微信V3证书序列号 |
@@ -49,6 +49,10 @@ public class CommonWxSignConfig extends StringPropertyUUIDEntity { | |||
private String planId;//ETC授权扣费模板ID,商户申请后由微信侧提供 V3 | |||
@Column(name = "PRIVATEKEY") | |||
private String privateKey;//微信V3私钥-apiclient_key.pem V3 | |||
@Column(name = "WX_PUBLICKEY_ID") | |||
private String wxPublicKeyId;//微信V3公钥ID | |||
@Column(name = "WX_PUBLIC_KEY") | |||
private String wxPublicKey;//微信V3公钥-pub_key.pem | |||
@Column(name = "SERIAL_NO") | |||
private String serialNo;//序列号 V3 | |||
@NotNull |
@@ -78,7 +78,7 @@ public class AtsCreatPayOrderV3Request extends AbstractAtsRequest<AtsCreatPayOrd | |||
//================================单独下单sdk请求将上面字段组装支付者信息Payer payer; | |||
//================================组装到场景信息SceneInfo sceneInfo; | |||
private String payerClientIp;//用户终端IP | |||
private String payerClientIp;//用户终端IP h5必填 | |||
//=================================组装到H5场景信息H5Info h5Info,然后h5Info组装到场景信息SceneInfo sceneInfo; | |||
private String type;//场景类型,示例值:iOS, Android, Wap | |||
@@ -91,6 +91,10 @@ public class AtsCreatPayOrderV3Request extends AbstractAtsRequest<AtsCreatPayOrd | |||
private String privateKey;// 你的商户私钥 apiclient_key.pem | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
public void validate(ErrorMsgBuilder builder) { |
@@ -49,6 +49,10 @@ public class AtsQueryPayResultV3Request extends AbstractAtsRequest<AtsQueryPayRe | |||
private String privateKey;// 你的商户私钥 apiclient_key.pem | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
private String subMchid;//子商户号 | |||
@Override |
@@ -43,6 +43,10 @@ public class AtsQueryRefundV3Request extends AbstractAtsRequest<AtsQueryRefundV3 | |||
private String privateKey;// 你的商户私钥 apiclient_key.pem | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
private String subMchid;//子商户号 | |||
@Override |
@@ -58,6 +58,10 @@ public class AtsRefundV3Request extends AbstractAtsRequest<AtsRefundV3Response> | |||
private String privateKey;// 你的商户私钥 apiclient_key.pem | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
private String subMchid;//子商户号 | |||
@Override |
@@ -81,6 +81,10 @@ public class AtsVehicleSignV3Request extends AbstractAtsRequest<AtsVehicleSignV3 | |||
private String privateKey;// 你的商户私钥 apiclient_key.pem | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
@Override | |||
protected void validate(ErrorMsgBuilder builder) { |
@@ -51,6 +51,10 @@ public class AtsVehicleSignV3ResultRequest extends AbstractSignTypeRequest<AtsVe | |||
private String privateKey;// 你的商户私钥 | |||
@NotBlank | |||
private String serialNo;// 商户证书序列号 | |||
@NotBlank | |||
private String publicKey;//商户公钥 | |||
@NotBlank | |||
private String publicKeyId;//商户公钥ID | |||
} |
@@ -39,11 +39,15 @@ public class WxCarAddReqDTO extends AbstractStaffBizRequestDTO { | |||
@NotBlank | |||
@ApiModelProperty(value = "签名密钥") | |||
private String signKey; | |||
@Column(name = "PLAN_ID") | |||
@ApiModelProperty(value = "ETC授权扣费模板ID") | |||
private String planId;//ETC授权扣费模板ID,商户申请后由微信侧提供 V3 | |||
@Column(name = "PRIVATEKEY") | |||
@ApiModelProperty(value = "微信V3私钥") | |||
private String privateKey;//微信V3私钥-apiclient_key.pem V3 | |||
@Column(name = "SERIAL_NO") | |||
@ApiModelProperty(value = "微信V3公钥ID") | |||
private String wxPublicKeyId;//微信V3公钥ID | |||
@ApiModelProperty(value = "微信V3公钥") | |||
private String wxPublicKey;//微信V3公钥-pub_key.pem | |||
@ApiModelProperty(value = "微信V3序列号") | |||
private String serialNo;//序列号 V3 | |||
@NotNull | |||
@IntegerConstant(values = "2,3") |
@@ -8,6 +8,8 @@ import cn.com.taiji.core.model.comm.protocol.constraint.IntegerConstant; | |||
import io.swagger.annotations.ApiModel; | |||
import io.swagger.annotations.ApiModelProperty; | |||
import lombok.Data; | |||
import javax.persistence.Column; | |||
import javax.validation.constraints.NotBlank; | |||
import javax.validation.constraints.NotNull; | |||
@@ -43,7 +45,7 @@ public class WxPayAddReqDTO extends AbstractStaffBizRequestDTO { | |||
@ApiModelProperty(value = "微信V2签名密钥") | |||
private String wxKey;//微信V2签名密钥 | |||
@ApiModelProperty(value = "支付产品类型") | |||
private String payProductType;//支付类型-暂时保留此字段 | |||
private String payProductType;// | |||
@ApiModelProperty(value = "说明") | |||
@NotBlank | |||
private String info;//说明 | |||
@@ -55,6 +57,10 @@ public class WxPayAddReqDTO extends AbstractStaffBizRequestDTO { | |||
private Integer wxServiceType;//微信商户下单类型,1普通商户,2服务商 | |||
@ApiModelProperty(value = "微信商户号") | |||
private String wxSubMchId;//微信商户号 | |||
@ApiModelProperty(value = "微信商户公钥ID") | |||
private String wxPublicKeyId; | |||
@ApiModelProperty(value = "微信商户公钥") | |||
private String wxPublicKey; | |||
@Override | |||
protected void validate(ViolationValidator validator) { | |||
@@ -72,6 +78,8 @@ public class WxPayAddReqDTO extends AbstractStaffBizRequestDTO { | |||
validator.validFieldNotBlank("wxApiv3key",wxApiv3key); | |||
validator.validFieldNotBlank("wxPrivatekey",wxPrivatekey); | |||
validator.validFieldNotBlank("wxSerialNo",wxSerialNo); | |||
validator.validFieldNotBlank("wxPublicKeyId",wxPublicKeyId); | |||
validator.validFieldNotBlank("wxPublicKey",wxPublicKey); | |||
} | |||
if (wxServiceType != null && wxServiceType==2){ | |||
validator.validFieldNotBlank("wxSubMchId",wxSubMchId); |
@@ -324,6 +324,8 @@ public abstract class AbstractOrderManager<T extends AbstractSignTypeRequest<?>> | |||
v3Request.setMchid(payConfig.getWxMchId()); | |||
v3Request.setApiV3Key(payConfig.getWxApiv3key()); | |||
v3Request.setPrivateKey(payConfig.getWxPrivatekey()); | |||
v3Request.setPublicKeyId(payConfig.getWxPublicKeyId()); | |||
v3Request.setPublicKey(payConfig.getWxPublicKey()); | |||
v3Request.setSerialNo(payConfig.getWxSerialNo()); | |||
// v3Request.setSubMchId("payConfig.get"); | |||
AtsQueryPayResultV3Response res = jsonPostRepeat(v3Request); |
@@ -138,6 +138,8 @@ public class OrderPayApplyManager extends AbstractOrderManager<OrderPayApplyRequ | |||
v3Request.setCreateType(payConfig.getWxServiceType()); | |||
v3Request.setTradeType(TradeType.valueOf(payConfig.getPayProductType())); | |||
v3Request.setAppid(payConfig.getWxAppId()); | |||
v3Request.setPublicKeyId(payConfig.getWxPublicKeyId()); | |||
v3Request.setPublicKey(payConfig.getWxPublicKey()); | |||
// v3Request.setSubAppid(); | |||
v3Request.setSubMchId(payConfig.getWxSubMchId()); | |||
v3Request.setDescription(orderPay.getPayType().getValue()); |
@@ -64,9 +64,10 @@ public class OrderPayQueryManager extends AbstractOrderManager<OrderPayQueryRequ | |||
IssueOrderinfo order = (IssueOrderinfo)dataStream.get(ORDER); | |||
if (order.getNeedPay()) { | |||
List<IssueOrderPay> orderPays = paymentDetections(request.getOrderNo()); | |||
List<OrderPayStatus> payStatus = orderPays.stream().distinct().map(IssueOrderPay::getPayStatus).collect(Collectors.toList()); | |||
List<OrderPayStatus> payStatus = orderPays.stream().map(IssueOrderPay::getPayStatus).distinct().collect(Collectors.toList()); | |||
// 全支付完了 | |||
if (payStatus.contains(OrderPayStatus.SUCCESS) && payStatus.size() == 1) { | |||
order.setWxOpenedId(request.getSubOpenId()); | |||
updateOrder(order); | |||
} | |||
orderPayRepo.persistAll(orderPays); | |||
@@ -87,7 +88,7 @@ public class OrderPayQueryManager extends AbstractOrderManager<OrderPayQueryRequ | |||
res.setOrderNo(order.getOrderNo()); | |||
if (order.getNeedPay()) { | |||
List<IssueOrderPay> orderPays = (List<IssueOrderPay>)dataStream.get(ORDERPAY); | |||
List<OrderPayStatus> payStatus = orderPays.stream().distinct().map(IssueOrderPay::getPayStatus).collect(Collectors.toList()); | |||
List<OrderPayStatus> payStatus = orderPays.stream().map(IssueOrderPay::getPayStatus).distinct().collect(Collectors.toList()); | |||
res.setPaymentStatus(payStatus.contains(OrderPayStatus.SUCCESS) && payStatus.size()==1 ? 1:0); | |||
res.setSumFee(order.getAmount()); | |||
List<OrderPayQueryModel> collect = |
@@ -121,6 +121,8 @@ public class SignQueryManager extends AbstractOrderManager<SignQueryRequest> { | |||
resultRequest.setMchid(signConfig.getMchId()); | |||
resultRequest.setApiV3Key(signConfig.getSignKey()); | |||
resultRequest.setPrivateKey(signConfig.getPrivateKey()); | |||
resultRequest.setPublicKeyId(signConfig.getWxPublicKeyId()); | |||
resultRequest.setPublicKey(signConfig.getWxPublicKey()); | |||
resultRequest.setSerialNo(signConfig.getSerialNo()); | |||
resultRequest.setPlanId(signConfig.getPlanId()); | |||
AtsVehicleSignV3ResultResponse resultResponse = jsonPostRepeat(resultRequest); | |||
@@ -143,6 +145,8 @@ public class SignQueryManager extends AbstractOrderManager<SignQueryRequest> { | |||
v3Request.setMchid(signConfig.getMchId()); | |||
v3Request.setApiV3Key(signConfig.getSignKey()); | |||
v3Request.setPrivateKey(signConfig.getPrivateKey()); | |||
v3Request.setPublicKeyId(signConfig.getWxPublicKeyId()); | |||
v3Request.setPublicKey(signConfig.getWxPublicKey()); | |||
v3Request.setSerialNo(signConfig.getSerialNo()); | |||
v3Request.setPlanId(signConfig.getPlanId()); | |||
v3Request.setOpenId(request.getSubOpenId()); |