支付操作时返回值解析错误

ldl123292 发布于 2015/02/04 23:19
阅读 4K+
收藏 0

这是请求接口的代码


Map<String, String> postHeader = new HashMap<String, String>();
postHeader.put("Content-Type", "text/html;charset=UTF-8");
String jsonResult = HttpKit.post("https://api.mch.weixin.qq.com/pay/unifiedorder",xml, postHeader); 
return new ApiResult(jsonResult);
这是我传入的xml,直接从微信文档里考的


<xml>
   <appid>wx2421b1c4370ec43b</appid>
   <attach>支付测试</attach>
   <body>JSAPI支付测试</body>
   <mch_id>10000100</mch_id>
   <nonce_str>1add1a30ac87aa2db72f57a2375d8fec</nonce_str>
   <notify_url>http://wxpay.weixin.qq.com/pub_v2/pay/notify.v2.php</notify_url>
   <openid>oUpF8uMuAJO_M2pxb1Q9zNjWeS6o</openid>
   <out_trade_no>1415659990</out_trade_no>
   <spbill_create_ip>14.23.150.211</spbill_create_ip>
   <total_fee>1</total_fee>
   <trade_type>JSAPI</trade_type>
   <sign>0CB01533B8C1EF103065174F50BCA001</sign>
</xml>


然后报错

java.lang.RuntimeException: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
 at [Source: <xml><return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<mch_id><![CDATA[10000100]]></mch_id>
<nonce_str><![CDATA[mrkaNQ8958rDuugQ]]></nonce_str>
<sign><![CDATA[A74A672B4FC302ECF03F1899B91082C4]]></sign>
<result_code><![CDATA[SUCCESS]]></result_code>
<prepay_id><![CDATA[wx2015020423175730417fc76e0154199460]]></prepay_id>
<trade_type><![CDATA[JSAPI]]></trade_type>
</xml>

这是微信文档的返回值

<xml>
   <return_code><![CDATA[SUCCESS]]></return_code>
   <return_msg><![CDATA[OK]]></return_msg>
   <appid><![CDATA[wx2421b1c4370ec43b]]></appid>
   <mch_id><![CDATA[10000100]]></mch_id>
   <nonce_str><![CDATA[IITRi8Iabbblz1Jc]]></nonce_str>
   <sign><![CDATA[7921E432F65EB8ED0CE9755F0E86D72F]]></sign>
   <result_code><![CDATA[SUCCESS]]></result_code>
   <prepay_id><![CDATA[wx201411101639507cbf6ffd8b0779950874]]></prepay_id>
   <trade_type><![CDATA[JSAPI]]></trade_type>
</xml>


解析不了返回值,要自己做些处理么

加载中
0
木川瓦兹
木川瓦兹

这个接口,微信返回的是个xml吧,不是json吧

导致

ApiResult(jsonResult);

无法转化

木川瓦兹
木川瓦兹
是的,用dom4j自己解析的xml
ldl123292
ldl123292
我看你的那个问题是怎么返回的,自己写的处理方法么
0
JFinal
JFinal
ApiResult 只可以转化 json 数据,如果是 XML 数据,可以参考一下  com.jfinal.weixin.sdk.msg.InMsgParaser.java 源代码,用的最广泛的 XML 解析工具 dom4j
返回顶部
顶部