diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java index 977351c8..43bf1316 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/HttpRequest.java @@ -130,7 +130,7 @@ public class HttpRequest { public Response post(String url, String body) throws WeixinException { HttpPost method = new HttpPost(url); method.setEntity(new StringEntity(body, ContentType.create( - ContentType.APPLICATION_JSON.getMimeType(), Consts.UTF_8))); + ContentType.DEFAULT_TEXT.getMimeType(), Consts.UTF_8))); return doRequest(method); } @@ -222,8 +222,8 @@ public class HttpRequest { } private void checkJson(Response response) throws WeixinException { - response.setJsonResult(true); JsonResult jsonResult = response.getAsJsonResult(); + response.setJsonResult(true); if (jsonResult.getCode() != 0) { if (StringUtils.isBlank(jsonResult.getDesc())) { jsonResult = response.getTextError(jsonResult.getCode()); @@ -234,7 +234,6 @@ public class HttpRequest { } private void checkXml(Response response) throws WeixinException { - response.setXmlResult(true); XmlResult xmlResult = null; try { xmlResult = response.getAsXmlResult(); @@ -250,6 +249,7 @@ public class HttpRequest { response.setText(newXml); xmlResult = response.getAsXmlResult(); } + response.setXmlResult(true); if (xmlResult.getReturnCode().equals("0")) { return; } diff --git a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java index 7a900a56..c008016f 100644 --- a/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java +++ b/weixin4j-mp/weixin4j-mp-api/src/main/java/com/foxinmy/weixin4j/mp/payment/PayUtil.java @@ -125,7 +125,7 @@ public class PayUtil { * md5签名(一般用于V3.x支付接口) * * @param obj - * 签名对象 + * 签名对象 * @param paySignKey * 支付API的密钥 * @return @@ -192,7 +192,7 @@ public class PayUtil { } /** - * 创建预支付对象 + * 创建预支付对象
此方法并不包含签名,需要自己传入一个完整并且合法的PayPackage * * @param payPackage * 包含订单信息的对象 @@ -200,19 +200,22 @@ public class PayUtil { * @see com.foxinmy.weixin4j.mp.payment.v3.PrePay * @return 预支付对象 */ - public static PrePay createPrePay(PayPackageV3 payPackage) { - PrePay prePay = null; + public static PrePay createPrePay(PayPackageV3 payPackage) + throws PayException { + if (StringUtils.isBlank(payPackage.getSign())) { + // String paySignKey = weixinAccount.getPaySignKey(); + // payPackage.setSign(paysignMd5(payPackage, paySignKey)); + } String payJsRequestXml = XStream.to(payPackage).replaceAll("__", "_"); HttpRequest request = new HttpRequest(); + Response response = null; try { - Response response = request.post(Consts.UNIFIEDORDER, - payJsRequestXml); - prePay = response.getAsObject(new TypeReference() { + response = request.post(Consts.UNIFIEDORDER, payJsRequestXml); + return response.getAsObject(new TypeReference() { }); } catch (WeixinException e) { - prePay = new PrePay(e.getErrorCode(), e.getErrorMsg()); + throw new PayException(e.getErrorCode(), e.getErrorMsg()); } - return prePay; } /** diff --git a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/PayAction.java b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/PayAction.java index 42769728..68616f34 100644 --- a/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/PayAction.java +++ b/weixin4j-mp/weixin4j-mp-server/src/main/java/com/foxinmy/weixin4j/mp/action/PayAction.java @@ -106,10 +106,10 @@ public class PayAction { * bank_type=2032&discount=0&fee_type=1&input_charset=UTF-8& * notify_id=9fKbVf_qg6y- * wSjtSMV0PLXeEn2oGfTM1s9dWSvR2B9U6iFQRTzmjrMWKUxvh9mpBLvnh8aqFbC_OFk1pTvFnFUO00Lln4fh - * & out_trade_no=D14102900031&partner=1221928801&product_fee=1&sign= - * B9D6E772C271C9B86B8436FC9F5DFC1A& - * sign_type=MD5&time_end=20141029183707 - * &total_fee=1&trade_mode=1&trade_state=0& + * & out_trade_no=D14102900031&partner=1221928801&product_fee=1& + * sign=B9D6E772C271C9B86B8436FC9F5DFC1A& + * sign_type=MD5&time_end=20141029183707& + * total_fee=1&trade_mode=1&trade_state=0& * transaction_id=1221928801201410296039230054&transport_fee=0 */ log.info("jspay_notify_orderinfo,{}", objMap); @@ -216,8 +216,8 @@ public class PayAction { * <is_subscribe>1</is_subscribe>
* <product_id>[CDATA[000000]]</product_id>
* <nonce_str><![CDATA[jALldRTHAFd5Tgs5]]></nonce_str>
- * <sign><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]></sign& - * gt
</xml>
+ * <sign><![CDATA[bafe07f060f22dcda0bfdb4b5ff756f973aecffa]]> + * </sign>
</xml>
* * @return * @throws PayException