From d9918fa33e3defa26e6a44a43e38f146ee30b922 Mon Sep 17 00:00:00 2001 From: zzs Date: Thu, 9 Mar 2017 14:44:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D2017=E6=94=AF=E4=BB=98?= =?UTF-8?q?=E5=AE=9Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../in/egan/pay/ali/api/AliPayService.java | 53 +++++++++++++------ pay-java-common/pom.xml | 6 +-- .../pay/demo/controller/PayController.java | 2 +- 3 files changed, 38 insertions(+), 23 deletions(-) diff --git a/pay-java-ali/src/main/java/in/egan/pay/ali/api/AliPayService.java b/pay-java-ali/src/main/java/in/egan/pay/ali/api/AliPayService.java index fc0769e..db87ad8 100644 --- a/pay-java-ali/src/main/java/in/egan/pay/ali/api/AliPayService.java +++ b/pay-java-ali/src/main/java/in/egan/pay/ali/api/AliPayService.java @@ -37,6 +37,7 @@ public class AliPayService extends BasePayService { private String httpsReqUrl = "https://openapi.alipay.com/gateway.do"; +// private String httpsReqUrl = "https://openapi.alipaydev.com/gateway.do"; private String httpsReqUrlBefore = "https://mapi.alipay.com/gateway.do"; public AliPayService(PayConfigStorage payConfigStorage, HttpConfigStorage configStorage) { @@ -90,7 +91,7 @@ public class AliPayService extends BasePayService { @Override public boolean verifySource(String id) { - return "true".equals(requestTemplate.getForObject( getHttpsVerifyUrl() + "partner=" + payConfigStorage.getPid() + "¬ify_id=" + id, String.class)); + return "true".equals(requestTemplate.getForObject( getHttpsVerifyUrl() + "pid=" + payConfigStorage.getPid() + "¬ify_id=" + id, String.class)); } @@ -101,7 +102,7 @@ public class AliPayService extends BasePayService { */ private Map setSign(Map parameters){ parameters.put("sign_type", payConfigStorage.getSignType()); - String sign = createSign( SignUtils.parameterText(parameters, "&", "sign", "appId"), payConfigStorage.getInputCharset()); + String sign = createSign( SignUtils.parameterText(parameters, "&", "sign"), payConfigStorage.getInputCharset()); /* try { sign = URLEncoder.encode(sign, payConfigStorage.getInputCharset()); @@ -163,9 +164,14 @@ public class AliPayService extends BasePayService { Map orderInfo = getPublicParameters(order.getTransactionType()); orderInfo.put("notify_url", payConfigStorage.getNotifyUrl()); + orderInfo.put("format", "json"); + Map bizContent = new TreeMap<>(); - if ("alipay.trade.pay".equals(order.getTransactionType().getMethod())){ + if (order.getTransactionType() == AliTransactionType.WAP){ + bizContent.put("product_code", "QUICK_WAP_PAY"); + orderInfo.put("return_url", payConfigStorage.getReturnUrl()); + }else if ("alipay.trade.pay".equals(order.getTransactionType().getMethod())){ bizContent.put("scene", order.getTransactionType().toString().toLowerCase()); bizContent.put("product_code", "FACE_TO_FACE_PAYMENT"); bizContent.put("auth_code", order.getAuthCode()); @@ -173,7 +179,7 @@ public class AliPayService extends BasePayService { bizContent.put("product_code", "QUICK_MSECURITY_PAY"); } bizContent.put("body", order.getBody()); - bizContent.put("seller_id", payConfigStorage.getPid()); + bizContent.put("seller_id", payConfigStorage.getSeller()); bizContent.put("subject", order.getSubject()); bizContent.put("out_trade_no", order.getOutTradeNo()); bizContent.put("total_amount", order.getPrice().setScale(2, BigDecimal.ROUND_HALF_UP).toString()); @@ -191,8 +197,10 @@ public class AliPayService extends BasePayService { orderInfo.put("app_id", payConfigStorage.getAppid()); orderInfo.put("method", transactionType.getMethod()); orderInfo.put("charset", payConfigStorage.getInputCharset()); - DateFormat formatter = DateFormat.getDateTimeInstance(); - orderInfo.put("timestamp", formatter.format( new Date())); + DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + df.setTimeZone(TimeZone.getTimeZone("GMT+8")); +// DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + orderInfo.put("timestamp", df.format(new Date())); orderInfo.put("version", "1.0"); return orderInfo; } @@ -285,23 +293,34 @@ public class AliPayService extends BasePayService { public String buildRequest(Map orderInfo, MethodType method) { StringBuffer formHtml = new StringBuffer(); + formHtml.append("
"); + for (String key : orderInfo.keySet()) { + Object o = orderInfo.get(key); + if (null == o || "null".equals(o) || "".equals(o)) { + continue; + } - formHtml.append(""); + formHtml.append(""); - for (String key: orderInfo.keySet()) { - Object o = orderInfo.get(key); - if (null == o ||"null".equals(o) || "".equals(o) ){ - continue; } - formHtml.append(""); + + } else { + String biz_content = (String)orderInfo.remove("biz_content"); + formHtml.append(httpsReqUrl).append("?").append(ClientHttpRequest.getMapToParameters(orderInfo)) + .append("\" method=\"") + .append(method.name().toLowerCase()).append("\">"); + + formHtml.append(""); } + //submit按钮控件请不要含有name属性 // formHtml.append(""); formHtml.append("
"); diff --git a/pay-java-common/pom.xml b/pay-java-common/pom.xml index 9595f5f..75f73e9 100644 --- a/pay-java-common/pom.xml +++ b/pay-java-common/pom.xml @@ -41,11 +41,7 @@ core 3.3.0 - - com.alipay - app - 1.0 - + \ No newline at end of file diff --git a/pay-java-demo/src/main/java/in/egan/pay/demo/controller/PayController.java b/pay-java-demo/src/main/java/in/egan/pay/demo/controller/PayController.java index 9a47a83..8fe931a 100644 --- a/pay-java-demo/src/main/java/in/egan/pay/demo/controller/PayController.java +++ b/pay-java-demo/src/main/java/in/egan/pay/demo/controller/PayController.java @@ -2,7 +2,7 @@ package in.egan.pay.demo.controller; -import in.egan.pay.ali.before.bean.AliTransactionType; + import in.egan.pay.common.api.Callback; import in.egan.pay.common.bean.*; import in.egan.pay.common.util.str.StringUtils;