From d1f6c241a297be54e8d9fb57176a9fdc54a03ee1 Mon Sep 17 00:00:00 2001 From: egzosn Date: Sun, 19 Mar 2017 23:25:48 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=96=B0=E5=AE=9A=E4=B9=89=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E6=94=AF=E4=BB=98=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../in/egan/pay/common/api/PayService.java | 4 +- .../common/bean/outbuilder/JsonBuilder.java | 2 +- .../pay/common/http/ClientHttpRequest.java | 44 +------------- .../in/egan/pay/common/http/UriVariables.java | 57 +++++++++++++++++++ .../wx/youdian/api/WxYouDianPayService.java | 3 +- .../java/in/egan/pay/wx/api/WxPayService.java | 3 +- 6 files changed, 66 insertions(+), 47 deletions(-) diff --git a/pay-java-common/src/main/java/in/egan/pay/common/api/PayService.java b/pay-java-common/src/main/java/in/egan/pay/common/api/PayService.java index ba1c601..206fa6a 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/api/PayService.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/api/PayService.java @@ -135,10 +135,10 @@ public interface PayService { /** * 获取输出二维码,用户返回给支付端, * - * @param orderInfo 发起支付的订单信息 + * @param order 发起支付的订单信息 * @return */ - BufferedImage genQrPay(Map orderInfo); + BufferedImage genQrPay(PayOrder order); /** * 交易查询接口 diff --git a/pay-java-common/src/main/java/in/egan/pay/common/bean/outbuilder/JsonBuilder.java b/pay-java-common/src/main/java/in/egan/pay/common/bean/outbuilder/JsonBuilder.java index d11d1d9..5345e08 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/bean/outbuilder/JsonBuilder.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/bean/outbuilder/JsonBuilder.java @@ -9,7 +9,7 @@ import in.egan.pay.common.bean.PayOutMessage; * @email egzosn@gmail.com * @date 2017/1/13 14:30 */ -public class JsonBuilder extends BaseBuilder{ +public class JsonBuilder extends BaseBuilder{ JSONObject json = null; public JsonBuilder(JSONObject json) { diff --git a/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java b/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java index e74ebe4..ee92398 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/http/ClientHttpRequest.java @@ -24,6 +24,8 @@ import java.net.URLEncoder; import java.util.List; import java.util.Map; +import static in.egan.pay.common.http.UriVariables.getMapToParameters; + /** * 一个HTTP请求的客户端 * @author: egan @@ -94,48 +96,6 @@ public class ClientHttpRequest extends HttpEntityEnclosingRequestBase impleme return this; } - /** - * Map转化为对应得参数字符串 - * @param pe - * @return - */ - public static String getMapToParameters(Map pe){ - StringBuilder builder = new StringBuilder(); - for (Object key : pe.keySet()) { - Object o = pe.get(key); - - if (null == o) { - continue; - } - - if (o instanceof List) { - o = ((List) o).toArray(); - } - try { - if (o instanceof Object[]) { - Object[] os = (Object[]) o; - String valueStr = ""; - for (int i = 0, len = os.length; i < len; i++) { - if (null == os[i]) { - continue; - } - String value = os[i].toString().trim(); - valueStr += (i == len - 1) ? value : value + ","; - } - builder.append(key).append("=").append(URLEncoder.encode(valueStr, "utf-8")).append("&"); - - continue; - } - builder.append(key).append("=").append(URLEncoder.encode((String) pe.get(key), "utf-8")).append("&"); - } catch (UnsupportedEncodingException e) { - e.printStackTrace(); - } - } - if (builder.length() > 1) { - builder.deleteCharAt(builder.length() - 1); - } - return builder.toString(); - } /** * 设置请求参数 diff --git a/pay-java-common/src/main/java/in/egan/pay/common/http/UriVariables.java b/pay-java-common/src/main/java/in/egan/pay/common/http/UriVariables.java index 074b38b..2262e10 100644 --- a/pay-java-common/src/main/java/in/egan/pay/common/http/UriVariables.java +++ b/pay-java-common/src/main/java/in/egan/pay/common/http/UriVariables.java @@ -1,6 +1,14 @@ package in.egan.pay.common.http; +import com.alibaba.fastjson.JSON; +import org.apache.http.Consts; +import org.apache.http.entity.ContentType; +import org.apache.http.entity.StringEntity; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -39,6 +47,8 @@ public class UriVariables { return uri; } + + /** * 匹配Map.key * @param uri @@ -70,4 +80,51 @@ public class UriVariables { } + + /** + * Map转化为对应得参数字符串 + * @param pe + * @return + */ + public static String getMapToParameters(Map pe){ + StringBuilder builder = new StringBuilder(); + for (Object key : pe.keySet()) { + Object o = pe.get(key); + + if (null == o) { + continue; + } + + if (o instanceof List) { + o = ((List) o).toArray(); + } + try { + if (o instanceof Object[]) { + Object[] os = (Object[]) o; + String valueStr = ""; + for (int i = 0, len = os.length; i < len; i++) { + if (null == os[i]) { + continue; + } + String value = os[i].toString().trim(); + valueStr += (i == len - 1) ? value : value + ","; + } + builder.append(key).append("=").append(URLEncoder.encode(valueStr, "utf-8")).append("&"); + + continue; + } + builder.append(key).append("=").append(URLEncoder.encode((String) pe.get(key), "utf-8")).append("&"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + } + if (builder.length() > 1) { + builder.deleteCharAt(builder.length() - 1); + } + return builder.toString(); + } + + + + } diff --git a/pay-java-wx-youdian/src/main/java/in/egan/pay/wx/youdian/api/WxYouDianPayService.java b/pay-java-wx-youdian/src/main/java/in/egan/pay/wx/youdian/api/WxYouDianPayService.java index ada3a3b..5aee123 100644 --- a/pay-java-wx-youdian/src/main/java/in/egan/pay/wx/youdian/api/WxYouDianPayService.java +++ b/pay-java-wx-youdian/src/main/java/in/egan/pay/wx/youdian/api/WxYouDianPayService.java @@ -362,7 +362,8 @@ public class WxYouDianPayService extends BasePayService { } @Override - public BufferedImage genQrPay(Map orderInfo) { + public BufferedImage genQrPay(PayOrder order) { + JSONObject orderInfo = orderInfo(order); return MatrixToImageWriter.writeInfoToJpgBuff((String) orderInfo.get("code_url")); } diff --git a/pay-java-wx/src/main/java/in/egan/pay/wx/api/WxPayService.java b/pay-java-wx/src/main/java/in/egan/pay/wx/api/WxPayService.java index 3bf4a9c..68e6625 100644 --- a/pay-java-wx/src/main/java/in/egan/pay/wx/api/WxPayService.java +++ b/pay-java-wx/src/main/java/in/egan/pay/wx/api/WxPayService.java @@ -242,7 +242,8 @@ public class WxPayService extends BasePayService { } @Override - public BufferedImage genQrPay(Map orderInfo) { + public BufferedImage genQrPay(PayOrder order) { + Map orderInfo = orderInfo(order); //获取对应的支付账户操作工具(可根据账户id) if (!"SUCCESS".equals(orderInfo.get("result_code"))) { throw new PayErrorException(new WxPayError("-1", (String) orderInfo.get("err_code")));