diff --git a/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayService.java b/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayService.java index 2716266b7081694734a71f481b5dcce1f37b1869..38bc4bef520eac2fbf89e838652eb25032343647 100644 --- a/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayService.java +++ b/pay-java-common/src/main/java/com/egzosn/pay/common/api/BasePayService.java @@ -423,6 +423,30 @@ public abstract class BasePayService implements Pay return getPayMessageHandler().handle(payMessage, context, this); } + /** + * 使用转换过的参数进行回调处理 + * + * @param data 转化后的参数Map + * @return 获得回调响应信息 + */ + @Override + public PayOutMessage payBack(Map data) { + if (LOG.isDebugEnabled()) { + LOG.debug("回调响应:" + JSON.toJSONString(data)); + } + if (!verify(data)) { + return getPayOutMessage("fail", "失败"); + } + PayMessage payMessage = this.createMessage(data); + Map context = new HashMap(); + for (PayMessageInterceptor interceptor : interceptors) { + if (!interceptor.intercept(payMessage, context, this)) { + return successPayOutMessage(payMessage); + } + } + return getPayMessageHandler().handle(payMessage, context, this); + } + /** * 创建消息 * 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 7a66d42f46e9eb3434f4bf540c1f951fcc861003..5fce5a9bc0591dd5d4a48694380fc8f3fbd2fae0 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 @@ -340,6 +340,14 @@ public interface PayService { */ PayOutMessage payBack(Map parameterMap, InputStream is); + /** + * 使用转换过的参数进行回调处理 + * + * @param data 转化后的参数Map + * @return 获得回调响应信息 + */ + PayOutMessage payBack(Map data); + /** * 设置支付消息处理器,这里用于处理具体的支付业务 * 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 200279ffa4decb12400a515efd5b97d6ee569cec..e407211377dcf3a8b388d10b7fcd7861bf837062 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 @@ -274,7 +274,7 @@ public class WxPayService extends BasePayService implements if (WxTransactionType.JSAPI == order.getTransactionType()) { params.put("signType", payConfigStorage.getSignType()); params.put("appId", payConfigStorage.getAppid()); - params.put("timeStamp", System.currentTimeMillis() / 1000); + params.put("timeStamp", System.currentTimeMillis() / 1000 + ""); params.put("nonceStr", result.get(NONCE_STR)); params.put("package", "prepay_id=" + result.get("prepay_id")); } @@ -287,7 +287,7 @@ public class WxPayService extends BasePayService implements params.put("package", "Sign=WXPay"); } String paySign = createSign(SignUtils.parameterText(params), payConfigStorage.getInputCharset()); - params.put(SIGN, paySign); + params.put(WxTransactionType.JSAPI.equals(order.getTransactionType()) ? "paySign" : SIGN, paySign); return params; } throw new PayErrorException(new WxPayError(result.getString(RETURN_CODE), result.getString(RETURN_MSG_CODE), "Invalid sign value"));