#78 我太粗心了,谢谢提醒。:-)

This commit is contained in:
jinyu 2016-06-21 14:02:36 +08:00
parent 1b12f59344
commit 47a9eaee31
3 changed files with 35 additions and 15 deletions

View File

@ -103,8 +103,11 @@ public class PayApi extends MchApi {
*/
public MchPayRequest createPayRequest(MchPayPackage payPackage)
throws WeixinException {
String tradeType = payPackage.getTradeType();
if (TradeType.MICROPAY.name().equalsIgnoreCase(tradeType)) {
if (StringUtil.isBlank(payPackage.getTradeType())) {
throw new WeixinException("tradeType not be empty");
}
String tradeType = payPackage.getTradeType().toUpperCase();
if (TradeType.MICROPAY.name().equals(tradeType)) {
super.declareMerchant(payPackage);
payPackage.setSign(weixinSignature.sign(payPackage));
String para = XmlStream.toXML(payPackage);
@ -117,14 +120,14 @@ public class PayApi extends MchApi {
return microPayRequest;
}
PrePay prePay = createPrePay(payPackage);
if (TradeType.APP.name().equalsIgnoreCase(tradeType)) {
if (TradeType.APP.name().equals(tradeType)) {
return new APPPayRequest(prePay.getPrepayId(), weixinAccount);
} else if (TradeType.JSAPI.name().equalsIgnoreCase(tradeType)) {
} else if (TradeType.JSAPI.name().equals(tradeType)) {
return new JSAPIPayRequest(prePay.getPrepayId(), weixinAccount);
} else if (TradeType.NATIVE.name().equalsIgnoreCase(tradeType)) {
} else if (TradeType.NATIVE.name().equals(tradeType)) {
return new NATIVEPayRequest(prePay.getPrepayId(),
prePay.getCodeUrl(), weixinAccount);
} else if (TradeType.WAP.name().equalsIgnoreCase(tradeType)) {
} else if (TradeType.WAP.name().equals(tradeType)) {
return new WAPPayRequest(prePay.getPrepayId(), weixinAccount);
} else {
throw new WeixinException("unknown tradeType:" + tradeType);
@ -386,9 +389,9 @@ public class PayApi extends MchApi {
public MchPayRequest createMicroPayRequest(String authCode, String body,
String outTradeNo, double totalFee, String createIp, String attach)
throws WeixinException {
// 刷卡支付不需要设置TradeType.MICROPAY
MchPayPackage payPackage = new MchPayPackage(body, outTradeNo,
totalFee, null, createIp, null, null, authCode, null, attach);
totalFee, null, createIp, TradeType.MICROPAY, null, authCode,
null, attach);
return createPayRequest(payPackage);
}

View File

@ -145,7 +145,9 @@ public class MchPayPackage extends PayPackage {
String goodsTag, String limitPay, String subOpenId) {
super(body, detial, outTradeNo, totalFee, notifyUrl, createIp, attach,
timeStart, timeExpire, goodsTag);
this.tradeType = tradeType.name();
if (tradeType.isPayRequestParameter()) {
this.tradeType = tradeType.name();
}
this.openId = openId;
this.authCode = authCode;
this.productId = productId;

View File

@ -13,21 +13,36 @@ public enum TradeType {
/**
* JS支付
*/
JSAPI,
JSAPI(true),
/**
* 刷卡支付
* 刷卡支付:不需要设置TradeType参数
*/
MICROPAY,
MICROPAY(false),
/**
* 扫码支付
*/
NATIVE,
NATIVE(true),
/**
* APP支付
*/
APP,
APP(true),
/**
* WAP支付
*/
WAP;
WAP(true);
boolean isPayRequestParameter;
private TradeType(boolean isPayRequestParameter) {
this.isPayRequestParameter = isPayRequestParameter;
}
/**
* 是否作为支付请求参数
*
* @return
*/
public boolean isPayRequestParameter() {
return isPayRequestParameter;
}
}