优化MchPayRequest & ServerToolkits
This commit is contained in:
@@ -130,13 +130,14 @@ public class Pay3Api {
|
||||
PrePay prePay = createPrePay(payPackage);
|
||||
String tradeType = payPackage.getTradeType();
|
||||
if (TradeType.APP.name().equalsIgnoreCase(tradeType)) {
|
||||
return new APPPayRequest(prePay, weixinAccount);
|
||||
return new APPPayRequest(prePay.getPrepayId(), weixinAccount);
|
||||
} else if (TradeType.JSAPI.name().equalsIgnoreCase(tradeType)) {
|
||||
return new JSAPIPayRequest(prePay, weixinAccount);
|
||||
return new JSAPIPayRequest(prePay.getPrepayId(), weixinAccount);
|
||||
} else if (TradeType.NATIVE.name().equalsIgnoreCase(tradeType)) {
|
||||
return new NATIVEPayRequest(prePay, weixinAccount);
|
||||
return new NATIVEPayRequest(prePay.getPrepayId(),
|
||||
prePay.getCodeUrl(), weixinAccount);
|
||||
} else if (TradeType.WAP.name().equalsIgnoreCase(tradeType)) {
|
||||
return new WAPPayRequest(prePay, weixinAccount);
|
||||
return new WAPPayRequest(prePay.getPrepayId(), weixinAccount);
|
||||
} else if (TradeType.MICROPAY.name().equalsIgnoreCase(tradeType)) {
|
||||
throw new WeixinPayException("maybe use createMicroPay method?");
|
||||
} else {
|
||||
|
||||
@@ -19,8 +19,8 @@ import com.foxinmy.weixin4j.util.MapUtil;
|
||||
*/
|
||||
public class APPPayRequest extends AbstractPayRequest {
|
||||
|
||||
public APPPayRequest(PrePay prePay, WeixinPayAccount payAccount) {
|
||||
super(prePay, payAccount);
|
||||
public APPPayRequest(String prePayId, WeixinPayAccount payAccount) {
|
||||
super(prePayId, payAccount);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -30,7 +30,7 @@ public class APPPayRequest extends AbstractPayRequest {
|
||||
public PayRequest toRequestObject() {
|
||||
PayRequest payRequest = new PayRequest(getPayAccount().getId(),
|
||||
"Sign=WXPay");
|
||||
payRequest.setPrepayId(getPrePay().getPrepayId());
|
||||
payRequest.setPrepayId(getPrePayId());
|
||||
payRequest.setPartnerId(getPayAccount().getPartnerId());
|
||||
return payRequest;
|
||||
}
|
||||
|
||||
+5
-11
@@ -1,30 +1,24 @@
|
||||
package com.foxinmy.weixin4j.payment.mch;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.foxinmy.weixin4j.model.WeixinPayAccount;
|
||||
|
||||
public abstract class AbstractPayRequest implements MchPayRequest {
|
||||
|
||||
private final PrePay prePay;
|
||||
private final String prePayId;
|
||||
private final WeixinPayAccount payAccount;
|
||||
|
||||
public AbstractPayRequest(PrePay prePay, WeixinPayAccount payAccount) {
|
||||
this.prePay = prePay;
|
||||
public AbstractPayRequest(String prePayId, WeixinPayAccount payAccount) {
|
||||
this.prePayId = prePayId;
|
||||
this.payAccount = payAccount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PrePay getPrePay() {
|
||||
return this.prePay;
|
||||
public String getPrePayId() {
|
||||
return this.prePayId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WeixinPayAccount getPayAccount() {
|
||||
return this.payAccount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toRequestString() {
|
||||
return JSON.toJSONString(toRequestObject());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.foxinmy.weixin4j.payment.mch;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.foxinmy.weixin4j.model.WeixinPayAccount;
|
||||
import com.foxinmy.weixin4j.payment.PayRequest;
|
||||
import com.foxinmy.weixin4j.type.SignType;
|
||||
@@ -24,17 +25,22 @@ import com.foxinmy.weixin4j.util.DigestUtil;
|
||||
*/
|
||||
public class JSAPIPayRequest extends AbstractPayRequest {
|
||||
|
||||
public JSAPIPayRequest(PrePay prePay, WeixinPayAccount payAccount) {
|
||||
super(prePay, payAccount);
|
||||
public JSAPIPayRequest(String prePayId, WeixinPayAccount payAccount) {
|
||||
super(prePayId, payAccount);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PayRequest toRequestObject() {
|
||||
PayRequest payRequest = new PayRequest(getPayAccount().getId(),
|
||||
"prepay_id=" + getPrePay().getPrepayId());
|
||||
"prepay_id=" + getPrePayId());
|
||||
payRequest.setSignType(SignType.MD5);
|
||||
payRequest.setPaySign(DigestUtil.paysignMd5(payRequest, getPayAccount()
|
||||
.getPaySignKey()));
|
||||
return payRequest;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toRequestString() {
|
||||
return JSON.toJSONString(toRequestObject());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,11 +17,11 @@ import com.foxinmy.weixin4j.payment.PayRequest;
|
||||
*/
|
||||
public interface MchPayRequest {
|
||||
/**
|
||||
* 预支付对象
|
||||
* 预支付交易ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public PrePay getPrePay();
|
||||
public String getPrePayId();
|
||||
|
||||
/**
|
||||
* 商户信息
|
||||
|
||||
@@ -17,8 +17,12 @@ import com.foxinmy.weixin4j.payment.PayRequest;
|
||||
*/
|
||||
public class NATIVEPayRequest extends AbstractPayRequest {
|
||||
|
||||
public NATIVEPayRequest(PrePay prePay, WeixinPayAccount payAccount) {
|
||||
super(prePay, payAccount);
|
||||
private final String codeUrl;
|
||||
|
||||
public NATIVEPayRequest(String prePayId, String codeUrl,
|
||||
WeixinPayAccount payAccount) {
|
||||
super(prePayId, payAccount);
|
||||
this.codeUrl = codeUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -26,12 +30,11 @@ public class NATIVEPayRequest extends AbstractPayRequest {
|
||||
*/
|
||||
@Override
|
||||
public PayRequest toRequestObject() {
|
||||
return new PayRequest(getPayAccount().getId(), "code_url="
|
||||
+ getPrePay().getCodeUrl());
|
||||
return new PayRequest(getPayAccount().getId(), "code_url=" + codeUrl);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toRequestString() {
|
||||
return getPrePay().getCodeUrl();
|
||||
return this.codeUrl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,8 +22,8 @@ import com.foxinmy.weixin4j.util.URLEncodingUtil;
|
||||
*/
|
||||
public class WAPPayRequest extends AbstractPayRequest {
|
||||
|
||||
public WAPPayRequest(PrePay prePay, WeixinPayAccount payAccount) {
|
||||
super(prePay, payAccount);
|
||||
public WAPPayRequest(String prePayId, WeixinPayAccount payAccount) {
|
||||
super(prePayId, payAccount);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -32,7 +32,7 @@ public class WAPPayRequest extends AbstractPayRequest {
|
||||
@Override
|
||||
public PayRequest toRequestObject() {
|
||||
PayRequest payRequest = new PayRequest(getPayAccount().getId(), "WAP");
|
||||
payRequest.setPrepayId(getPrePay().getPrepayId());
|
||||
payRequest.setPrepayId(getPrePayId());
|
||||
return payRequest;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user