Selaa lähdekoodia

微信支付V3 改造

master
chenchaod 1 kuukausi sitten
vanhempi
commit
62fc45ebb6
14 muutettua tiedostoa jossa 60 lisäystä ja 7 poistoa
  1. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/CommonPayConfig.java
  2. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/CommonWxSignConfig.java
  3. 5
    1
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsCreatPayOrderV3Request.java
  4. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsQueryPayResultV3Request.java
  5. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsQueryRefundV3Request.java
  6. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsRefundV3Request.java
  7. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsVehicleSignV3Request.java
  8. 4
    0
      gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsVehicleSignV3ResultRequest.java
  9. 7
    3
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/wx/WxCarAddReqDTO.java
  10. 9
    1
      zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/wx/WxPayAddReqDTO.java
  11. 2
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/AbstractOrderManager.java
  12. 2
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderPayApplyManager.java
  13. 3
    2
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderPayQueryManager.java
  14. 4
    0
      zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/SignQueryManager.java

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/CommonPayConfig.java Näytä tiedosto

@@ -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证书序列号

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/entity/comm/CommonWxSignConfig.java Näytä tiedosto

@@ -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

+ 5
- 1
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsCreatPayOrderV3Request.java Näytä tiedosto

@@ -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) {

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsQueryPayResultV3Request.java Näytä tiedosto

@@ -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

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsQueryRefundV3Request.java Näytä tiedosto

@@ -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

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsRefundV3Request.java Näytä tiedosto

@@ -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

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsVehicleSignV3Request.java Näytä tiedosto

@@ -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) {

+ 4
- 0
gly-base-core/src/main/java/cn/com/taiji/core/model/comm/protocol/ats/weiXin/AtsVehicleSignV3ResultRequest.java Näytä tiedosto

@@ -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


}

+ 7
- 3
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/wx/WxCarAddReqDTO.java Näytä tiedosto

@@ -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")

+ 9
- 1
zhywpt-app-userw/src/main/java/cn/com/taiji/userw/dto/wx/WxPayAddReqDTO.java Näytä tiedosto

@@ -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);

+ 2
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/AbstractOrderManager.java Näytä tiedosto

@@ -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);

+ 2
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderPayApplyManager.java Näytä tiedosto

@@ -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());

+ 3
- 2
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/OrderPayQueryManager.java Näytä tiedosto

@@ -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 =

+ 4
- 0
zhywpt-service-ias/src/main/java/cn/com/taiji/ias/manager/order/SignQueryManager.java Näytä tiedosto

@@ -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());

Loading…
Peruuta
Tallenna