diff --git a/pay-java-ali/pom.xml b/pay-java-ali/pom.xml
index 1c1ab58..ead19e0 100644
--- a/pay-java-ali/pom.xml
+++ b/pay-java-ali/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.1
+ 2.0.2-SNAPSHOT
4.0.0
pay-java-ali
diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java
index e7e9bdc..9e215ab 100644
--- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java
+++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/api/AliPayService.java
@@ -214,13 +214,13 @@ public class AliPayService extends BasePayService {
private Map getOrderBefore(PayOrder order) {
Map orderInfo = new TreeMap<>();
// 签约合作者身份ID
- orderInfo.put("partner", payConfigStorage.getPartner());
+ orderInfo.put("partner", payConfigStorage.getPid());
// 签约卖家支付宝账号
orderInfo.put("seller_id", payConfigStorage.getSeller());
// 商户网站唯一订单号
- orderInfo.put("out_trade_no", order.getTradeNo());
+ orderInfo.put("out_trade_no", order.getOutTradeNo());
// 商品名称
orderInfo.put("subject", order.getSubject());
@@ -270,9 +270,9 @@ public class AliPayService extends BasePayService {
* @return 获得回调的请求参数
*/
@Override
- public Map getParameter2Map(Map parameterMap, InputStream is) {
+ public Map getParameter2Map(Map parameterMap, InputStream is) {
- Map params = new TreeMap();
+ Map params = new TreeMap();
for (Iterator iter = parameterMap.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = parameterMap.get(name);
@@ -365,6 +365,27 @@ public class AliPayService extends BasePayService {
throw new PayErrorException(new PayException(response.getString("code"), response.getString("msg"), result.toJSONString()));
}
+
+ /**
+ * pos主动扫码付款(条码付)
+ * @param order 发起支付的订单信息
+ * @return 支付结果
+ */
+ @Override
+ public Map microPay(PayOrder order) {
+ Map orderInfo = orderInfo(order);
+
+// Map content = new HashMap<>(1);
+// content.put("biz_content", orderInfo.remove("biz_content"));
+ //预订单
+ JSONObject result = getHttpRequestTemplate().postForObject(getReqUrl() + "?" + UriVariables.getMapToParameters(orderInfo), null, JSONObject.class);
+ JSONObject response = result.getJSONObject("alipay_trade_precreate_response");
+ if ("10000".equals(response.getString("code"))){
+ return response;
+ }
+ throw new PayErrorException(new PayException(response.getString("code"), response.getString("msg"), result.toJSONString()));
+ }
+
/**
* 交易查询接口
* @param tradeNo 支付平台订单号
diff --git a/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java b/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java
index 41a8b17..cab9021 100644
--- a/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java
+++ b/pay-java-ali/src/main/java/com/egzosn/pay/ali/before/api/AliPayService.java
@@ -62,7 +62,7 @@ public class AliPayService extends BasePayService {
* @return 签名校验 true通过
*/
@Override
- public boolean verify(Map params) {
+ public boolean verify(Map params) {
if (params.get("sign") == null || params.get("notify_id") == null) {
log.debug("支付宝支付异常:params:" + params);
@@ -70,7 +70,7 @@ public class AliPayService extends BasePayService {
}
try {
- return signVerify(params, params.get("sign")) && verifySource(params.get("notify_id"));
+ return signVerify(params, (String) params.get("sign")) && verifySource((String) params.get("notify_id"));
} catch (PayErrorException e) {
e.printStackTrace();
}
@@ -95,7 +95,7 @@ public class AliPayService extends BasePayService {
* @return 生成的签名结果
*/
@Override
- public boolean signVerify(Map params, String sign) {
+ public boolean signVerify(Map params, String sign) {
return SignUtils.valueOf(payConfigStorage.getSignType()).verify(params, sign, payConfigStorage.getKeyPublic(), payConfigStorage.getInputCharset());
}
@@ -215,9 +215,9 @@ public class AliPayService extends BasePayService {
* @return 获得回调的请求参数
*/
@Override
- public Map getParameter2Map(Map parameterMap, InputStream is) {
+ public Map getParameter2Map(Map parameterMap, InputStream is) {
- Map params = new TreeMap();
+ Map params = new TreeMap();
for (Iterator iter = parameterMap.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = parameterMap.get(name);
@@ -293,6 +293,16 @@ public class AliPayService extends BasePayService {
throw new UnsupportedOperationException();
}
+ /**
+ * 刷卡付,pos主动扫码付款(条码付)
+ * @param order 发起支付的订单信息
+ * @return 支付结果
+ */
+ @Override
+ public Map microPay(PayOrder order) {
+ throw new UnsupportedOperationException();
+ }
+
/**
* 交易查询接口
diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml
index 6998d36..860e096 100644
--- a/pay-java-common/pom.xml
+++ b/pay-java-common/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.1
+ 2.0.2-SNAPSHOT
4.0.0
jar
diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayService.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayService.java
index 35dfed3..b237121 100644
--- a/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayService.java
+++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/PayService.java
@@ -60,7 +60,7 @@ public interface PayService {
* @param params 回调回来的参数集
* @return 签名校验 true通过
*/
- boolean verify(Map params);
+ boolean verify(Map params);
/**
* 签名校验
@@ -69,7 +69,7 @@ public interface PayService {
* @param sign 签名
* @return 签名校验 true通过
*/
- boolean signVerify(Map params, String sign);
+ boolean signVerify(Map params, String sign);
/**
@@ -115,7 +115,7 @@ public interface PayService {
* @param is 请求流
* @return 获得回调的请求参数
*/
- Map getParameter2Map(Map parameterMap, InputStream is);
+ Map getParameter2Map(Map parameterMap, InputStream is);
/**
* 获取输出消息,用户返回给支付端
@@ -144,6 +144,14 @@ public interface PayService {
*/
BufferedImage genQrPay(PayOrder order);
+ /**
+ * 刷卡付,pos主动扫码付款(条码付)
+ *
+ * @param order 发起支付的订单信息
+ * @return 返回支付结果
+ */
+ Map microPay(PayOrder order);
+
/**
* 交易查询接口
*
diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayMessage.java b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayMessage.java
index c6eceb1..8ae04f1 100644
--- a/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayMessage.java
+++ b/pay-java-common/src/main/java/com/egzosn/pay/common/bean/PayMessage.java
@@ -4,7 +4,6 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Arrays;
import java.util.Date;
import java.util.Map;
@@ -18,25 +17,25 @@ import java.util.Map;
*
*/
public class PayMessage implements Serializable {
- private Map payMessage = null;
+ private Map payMessage = null;
private String msgType;
private String payType;
private String transactionType;
private String fromPay;
private String describe;
- public PayMessage(Map payMessage) {
+ public PayMessage(Map payMessage) {
this.payMessage = payMessage;
}
- public PayMessage(Map payMessage, String payType, String msgType) {
+ public PayMessage(Map payMessage, String payType, String msgType) {
this(payMessage);
this.payType = payType;
this.msgType = msgType;
}
- public PayMessage(Map payMessage, String msgType, String payType, String transactionType) {
+ public PayMessage(Map payMessage, String msgType, String payType, String transactionType) {
this.payMessage = payMessage;
this.msgType = msgType;
this.payType = payType;
@@ -84,25 +83,25 @@ public class PayMessage implements Serializable {
this.describe = describe;
}
public String getDiscount(){
- return payMessage.get("discount");
+ return (String) payMessage.get("discount");
}
public String getSubject(){
- return payMessage.get("subject");
+ return (String) payMessage.get("subject");
}
/////////微信与支付宝共用
public String getOutTradeNo(){
- return payMessage.get("out_trade_no");
+ return (String) payMessage.get("out_trade_no");
}
public String getSign(){
- return payMessage.get("sign");
+ return (String) payMessage.get("sign");
}
public Number getTotalFee(){
- String total_fee = payMessage.get("total_fee");
+ String total_fee = (String) payMessage.get("total_fee");
if (null == total_fee || "".equals(total_fee)){ return 0; }
if (isNumber(total_fee)){
BigDecimal totalFee = new BigDecimal(total_fee);
@@ -138,7 +137,7 @@ public class PayMessage implements Serializable {
return payMessage.toString();
}
- public Map getPayMessage() {
+ public Map getPayMessage() {
return payMessage;
}
diff --git a/pay-java-demo/pom.xml b/pay-java-demo/pom.xml
index 5034217..32b2abe 100644
--- a/pay-java-demo/pom.xml
+++ b/pay-java-demo/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.SNAPSHOT
+ 2.0.2-SNAPSHOT
4.0.0
war
@@ -16,7 +16,6 @@
4.3.4.RELEASE
4.10
4.3.6.Final
- 2.0.SNAPSHOT
diff --git a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java
index d53562c..135ca56 100644
--- a/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java
+++ b/pay-java-demo/src/main/java/com/egzosn/pay/demo/controller/PayController.java
@@ -84,6 +84,32 @@ public class PayController {
}
+ /**
+ * 刷卡付,pos主动扫码付款(条码付)
+ *
+ * @return 支付结果
+ */
+ @RequestMapping(value = "microPay")
+ public Map microPay(Integer payId, String transactionType, BigDecimal price, String authCode) throws IOException {
+ //获取对应的支付账户操作工具(可根据账户id)
+ PayResponse payResponse = service.getPayResponse(payId);
+
+ PayOrder order = new PayOrder("订单title", "摘要", null == price ? new BigDecimal(0.01) : price, UUID.randomUUID().toString().replace("-", ""), PayType.valueOf(payResponse.getStorage().getPayType()).getTransactionType(transactionType));
+ //设置授权码,条码等
+ order.setAuthCode(authCode);
+ //支付结果
+ Map params = payResponse.getService().microPay(order);
+ PayConfigStorage storage = payResponse.getStorage();
+ //校验
+ if (payResponse.getService().verify(params)) {
+ PayMessage message = new PayMessage(params, storage.getPayType(), storage.getMsgType().name());
+ //支付校验通过后的处理
+ payResponse.getRouter().route(message);
+ }
+ //这里开发者自行处理
+ return params;
+ }
+
/**
* 获取二维码图像
* 二维码支付
@@ -132,7 +158,7 @@ public class PayController {
PayResponse payResponse = service.getPayResponse(payId);
PayConfigStorage storage = payResponse.getStorage();
//获取支付方返回的对应参数
- Map params = payResponse.getService().getParameter2Map(request.getParameterMap(), request.getInputStream());
+ Map params = payResponse.getService().getParameter2Map(request.getParameterMap(), request.getInputStream());
if (null == params) {
return payResponse.getService().getPayOutMessage("fail", "失败").toMessage();
}
diff --git a/pay-java-fuiou/pom.xml b/pay-java-fuiou/pom.xml
index ee437ea..771677f 100644
--- a/pay-java-fuiou/pom.xml
+++ b/pay-java-fuiou/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.1
+ 2.0.2-SNAPSHOT
4.0.0
pay-java-fuiou
diff --git a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java
index 6403930..e977604 100644
--- a/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java
+++ b/pay-java-fuiou/src/main/java/com/egzosn/pay/fuiou/api/FuiouPayService.java
@@ -70,14 +70,14 @@ public class FuiouPayService extends BasePayService {
* @return 返回检验结果 0000 成功 其他失败
*/
@Override
- public boolean verify(Map params) {
+ public boolean verify(Map params) {
if (!"0000".equals(params.get("order_pay_code"))) {
log.debug(String.format("富友支付异常:order_pay_code=%s,错误原因=%s,参数集=%s", params.get("order_pay_code"), params.get("order_pay_error"), params));
return false;
}
try {
//返回参数校验 和 重新请求订单检查数据是否合法
- return (signVerify(params, params.get("md5")) && verifySource(params.get("order_id")));
+ return (signVerify(params, (String) params.get("md5")) && verifySource((String) params.get("order_id")));
} catch (PayErrorException e) {
e.printStackTrace();
}
@@ -92,7 +92,7 @@ public class FuiouPayService extends BasePayService {
* @return 校验结果
*/
@Override
- public boolean signVerify (Map params, String responseSign ) {
+ public boolean signVerify (Map params, String responseSign) {
LinkedHashSet keySet = new LinkedHashSet<>();
keySet.add("mchnt_cd");//商户代码
keySet.add("order_id");//商户订单号
@@ -105,7 +105,7 @@ public class FuiouPayService extends BasePayService {
keySet.add("fy_ssn");//富友流水号
StringBuilder verifyMD5Str = new StringBuilder();
for (String keyStr : keySet) {
- String keyValue = params.get(keyStr);
+ String keyValue = (String) params.get(keyStr);
if (null == keyValue){
log.debug(String.format("富友支付返回结果校验:<参数:%s>不能为空,",keyStr));
}
@@ -186,7 +186,7 @@ public class FuiouPayService extends BasePayService {
* @return 返回参数集合
*/
@Override
- public Map getParameter2Map(Map parameterMap, InputStream is) {
+ public Map getParameter2Map(Map parameterMap, InputStream is) {
return null;
}
@@ -216,13 +216,23 @@ public class FuiouPayService extends BasePayService {
/**
* 获取输出二维码,用户返回给支付端,
- *
+ * 暂未实现或无此功能
* @param order 发起支付的订单信息
* @return 空
*/
@Override
public BufferedImage genQrPay (PayOrder order) {
- return null;
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * 暂未实现或无此功能
+ * @param order 发起支付的订单信息
+ * @return 不支持的操作异常
+ */
+ @Override
+ public Map microPay(PayOrder order) {
+ throw new UnsupportedOperationException();
}
/**
diff --git a/pay-java-wx-youdian/pom.xml b/pay-java-wx-youdian/pom.xml
index b850ea7..cf7550c 100644
--- a/pay-java-wx-youdian/pom.xml
+++ b/pay-java-wx-youdian/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.1
+ 2.0.2-SNAPSHOT
4.0.0
pay-java-wx-youdian
diff --git a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java
index fc7167a..b1b9018 100644
--- a/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java
+++ b/pay-java-wx-youdian/src/main/java/com/egzosn/pay/wx/youdian/api/WxYouDianPayService.java
@@ -135,7 +135,7 @@ public class WxYouDianPayService extends BasePayService {
* @return 签名校验 true通过
*/
@Override
- public boolean verify(Map params) {
+ public boolean verify(Map params) {
if (!"SUCCESS".equals(params.get("return_code"))){
log.debug(String.format("友店微信支付异常:return_code=%s,参数集=%s", params.get("return_code"), params));
return false;
@@ -143,7 +143,7 @@ public class WxYouDianPayService extends BasePayService {
if(params.get("sign") == null) {log.debug("友店微信支付异常:签名为空!out_trade_no=" + params.get("out_trade_no"));}
try {
- return signVerify(params, params.get("sign")) && verifySource(params.get("out_trade_no"));
+ return signVerify(params, (String) params.get("sign")) && verifySource((String)params.get("out_trade_no"));
} catch (PayErrorException e) {
e.printStackTrace();
}
@@ -158,7 +158,7 @@ public class WxYouDianPayService extends BasePayService {
* @return 生成的签名结果
*/
@Override
- public boolean signVerify(Map params, String sign) {
+ public boolean signVerify(Map params, String sign) {
return SignUtils.valueOf(payConfigStorage.getSignType()).verify(params, sign, "&key=" + payConfigStorage.getKeyPrivate(), payConfigStorage.getInputCharset());
}
@@ -286,8 +286,8 @@ public class WxYouDianPayService extends BasePayService {
* @return 获得回调的请求参数
*/
@Override
- public Map getParameter2Map(Map parameterMap, InputStream is) {
- Map params = new TreeMap<>();
+ public Map getParameter2Map(Map parameterMap, InputStream is) {
+ Map params = new TreeMap();
for (Iterator iter = parameterMap.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = parameterMap.get(name);
@@ -340,12 +340,23 @@ public class WxYouDianPayService extends BasePayService {
throw new UnsupportedOperationException();
}
+
@Override
public BufferedImage genQrPay(PayOrder order) {
JSONObject orderInfo = orderInfo(order);
return MatrixToImageWriter.writeInfoToJpgBuff((String) orderInfo.get("code_url"));
}
+ /**
+ * 暂未实现或无此功能
+ * @param order 发起支付的订单信息
+ * @return 返回支付结果
+ */
+ @Override
+ public Map microPay(PayOrder order) {
+ throw new UnsupportedOperationException();
+ }
+
@Override
public Map query(String tradeNo, String outTradeNo) {
return null;
diff --git a/pay-java-wx/pom.xml b/pay-java-wx/pom.xml
index a779de5..35a6e55 100644
--- a/pay-java-wx/pom.xml
+++ b/pay-java-wx/pom.xml
@@ -5,7 +5,7 @@
pay-java-parent
com.egzosn
- 2.0.1
+ 2.0.2-SNAPSHOT
4.0.0
pay-java-wx
diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java
index df059d9..bdaeebb 100644
--- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java
+++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/api/WxPayService.java
@@ -71,7 +71,7 @@ public class WxPayService extends BasePayService {
* @return 签名校验 true通过
*/
@Override
- public boolean verify(Map params) {
+ public boolean verify(Map params) {
if (!"SUCCESS".equals(params.get("return_code"))){
log.debug(String.format("微信支付异常:return_code=%s,参数集=%s", params.get("return_code"), params));
return false;
@@ -83,7 +83,7 @@ public class WxPayService extends BasePayService {
}
try {
- return signVerify(params, params.get("sign")) && verifySource(params.get("out_trade_no"));
+ return signVerify(params, (String) params.get("sign")) && verifySource((String)params.get("out_trade_no"));
} catch (PayErrorException e) {
e.printStackTrace();
}
@@ -108,7 +108,7 @@ public class WxPayService extends BasePayService {
* @param sign 比对的签名结果
* @return 生成的签名结果
*/
- public boolean signVerify(Map params, String sign) {
+ public boolean signVerify(Map params, String sign) {
return SignUtils.valueOf(payConfigStorage.getSignType()).verify(params, sign, "&key=" + payConfigStorage.getKeyPublic(), payConfigStorage.getInputCharset());
}
@@ -120,7 +120,7 @@ public class WxPayService extends BasePayService {
Map parameters = new TreeMap();
parameters.put("appid", payConfigStorage.getAppid());
- parameters.put("mch_id", payConfigStorage.getPartner());
+ parameters.put("mch_id", payConfigStorage.getPid());
parameters.put("nonce_str", SignUtils.randomStr());
return parameters;
@@ -128,6 +128,49 @@ public class WxPayService extends BasePayService {
}
+ /**
+ * 微信统一下单接口
+ *
+ * @param order 支付订单集
+ * @return 下单结果
+ */
+ public JSONObject unifiedOrder(PayOrder order) {
+
+ ////统一下单
+ Map parameters = getPublicParameters();
+
+ parameters.put("body", order.getSubject());// 购买支付信息
+
+ //刷卡付
+ if (WxTransactionType.MICROPAY == order.getTransactionType()) {
+ parameters.put("auth_code", order.getAuthCode());
+ } else {
+ parameters.put("notify_url", payConfigStorage.getNotifyUrl());
+
+ }
+
+ parameters.put("out_trade_no", order.getOutTradeNo());// 订单号
+ parameters.put("spbill_create_ip", "192.168.1.150");
+ parameters.put("total_fee", order.getPrice().multiply(new BigDecimal(100)).intValue());// 总金额单位为分
+ parameters.put("trade_type", order.getTransactionType().getType());
+ parameters.put("attach", order.getBody());
+ if (WxTransactionType.NATIVE == order.getTransactionType()) {
+ parameters.put("product_id", order.getOutTradeNo());
+ }
+ String sign = createSign(SignUtils.parameterText(parameters), payConfigStorage.getInputCharset());
+ parameters.put("sign", sign);
+
+ String requestXML = XML.getMap2Xml(parameters);
+ log.debug("requestXML:" + requestXML);
+ //调起支付的参数列表
+ JSONObject result = requestTemplate.postForObject(getUrl(order.getTransactionType()), requestXML, JSONObject.class);
+
+ if (!"SUCCESS".equals(result.get("return_code"))){
+ throw new PayErrorException(new WxPayError(result.getString("return_code"), result.getString("return_msg"), result.toJSONString()));
+ }
+ return result;
+ }
+
/**
* 返回创建的订单信息
@@ -140,33 +183,10 @@ public class WxPayService extends BasePayService {
public Map orderInfo(PayOrder order) {
////统一下单
- Map parameters = getPublicParameters();
- /* parameters.put("appid", payConfigStorage.getAppid());
- parameters.put("mch_id", payConfigStorage.getPartner());
- parameters.put("nonce_str", SignUtils.randomStr());*/
- parameters.put("body", order.getSubject());// 购买支付信息
- parameters.put("notify_url", payConfigStorage.getNotifyUrl());
- parameters.put("out_trade_no", order.getOutTradeNo());// 订单号
- parameters.put("spbill_create_ip", "192.168.1.150");
- parameters.put("total_fee", order.getPrice().multiply(new BigDecimal(100)).intValue());// 总金额单位为分
- parameters.put("trade_type", order.getTransactionType().getType());
- parameters.put("attach", order.getBody());
- if (WxTransactionType.NATIVE == order.getTransactionType()){
- parameters.put("product_id", order.getOutTradeNo());
- }
- String sign = createSign(SignUtils.parameterText(parameters), payConfigStorage.getInputCharset());
- parameters.put("sign", sign);
+ JSONObject result = unifiedOrder(order);
- String requestXML = XML.getMap2Xml(parameters);
- log.debug("requestXML:" + requestXML);
- /////////APP端调起支付的参数列表
- JSONObject result = requestTemplate.postForObject(getUrl(order.getTransactionType()), requestXML, JSONObject.class);
-
- if (!"SUCCESS".equals(result.get("return_code"))){
- throw new PayErrorException(new WxPayError(result.getString("return_code"), result.getString("return_msg"), result.toJSONString()));
- }
- //如果是扫码支付无需处理,直接返回
- if (WxTransactionType.NATIVE == order.getTransactionType()){
+ //如果是扫码支付或者刷卡付无需处理,直接返回
+ if (WxTransactionType.NATIVE == order.getTransactionType() || WxTransactionType.MICROPAY == order.getTransactionType()) {
return result;
}
@@ -221,8 +241,8 @@ public class WxPayService extends BasePayService {
* @return 获得回调的请求参数
*/
@Override
- public Map getParameter2Map(Map parameterMap, InputStream is) {
- TreeMap map = new TreeMap();
+ public Map getParameter2Map(Map parameterMap, InputStream is) {
+ TreeMap map = new TreeMap();
try {
return XML.inputStream2Map(is, map);
} catch (IOException e) {
@@ -259,7 +279,7 @@ public class WxPayService extends BasePayService {
/**
* 获取输出二维码,用户返回给支付端,
- *
+ * 暂未实现或无此功能
* @param order 发起支付的订单信息
* @return 返回图片信息,支付时需要的
*/
@@ -275,6 +295,18 @@ public class WxPayService extends BasePayService {
return MatrixToImageWriter.writeInfoToJpgBuff((String) orderInfo.get("code_url"));
}
+ /**
+ * 刷卡付,pos主动扫码付款
+ * @param order 发起支付的订单信息
+ * @return 返回支付结果
+ */
+ @Override
+ public Map microPay(PayOrder order) {
+
+ return orderInfo(order);
+ }
+
+
/**
* 交易查询接口
*
diff --git a/pay-java-wx/src/main/java/com/egzosn/pay/wx/bean/WxTransactionType.java b/pay-java-wx/src/main/java/com/egzosn/pay/wx/bean/WxTransactionType.java
index 21ce55d..ff9dc4e 100644
--- a/pay-java-wx/src/main/java/com/egzosn/pay/wx/bean/WxTransactionType.java
+++ b/pay-java-wx/src/main/java/com/egzosn/pay/wx/bean/WxTransactionType.java
@@ -11,13 +11,13 @@ import com.egzosn.pay.common.bean.TransactionType;
*/
public enum WxTransactionType implements TransactionType {
//公众号支付
- JSAPI("pay/unifiedorder"),//暂未接触
+ JSAPI("pay/unifiedorder"),
//扫码付
NATIVE("pay/unifiedorder"),
//移动支付
APP("pay/unifiedorder"),
//刷卡付,暂未接触
- MICROPAY("pay/unifiedorder"),
+ MICROPAY("pay/micropay"),
// TODO 2017/3/8 19:14 author: egan 交易辅助接口
//查询订单
QUERY("pay/orderquery"),
diff --git a/pom.xml b/pom.xml
index 9cb1fce..cc0dc71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
com.egzosn
pay-java-parent
pom
- 2.0.1
+ 2.0.2-SNAPSHOT
Pay Java - Parent
Pay Java Parent
@@ -50,7 +50,7 @@
4.5.2
1.2.17
- 2.0.1
+ 2.0.2-SNAPSHOT