微信支付的统一下单接口要求这样的格式(摘自官方文档):
<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>
我POST的数据如下:
<xml>
<appid>wx(打个码)</appid>
<attach>支付测试</attach>
<body>树屋树递快递到寝配送服务</body>
<detail>树屋树递快递到寝配送服务</detail>
<device_info>WEB</device_info>
<fee_type>CNY</fee_type>
<mch_id>(打个码)</mch_id>
<nonce_str><![CDATA[7&-1ib26HO5lWFoavTwe^]]></nonce_str>
<notify_url><![CDATA[http://www.treehouses.cn/front-4ae1dacda1f197bbfbc57ec9fbb4911f/api/wxpayresponse]]></notify_url>
<openid><![CDATA[o8nXct499ctQzioUQt93-vyq9hgM]]></openid>
<out_trade_no><![CDATA[60065]]></out_trade_no>
<product_id>0001</product_id>
<spbill_create_ip><![CDATA[49.140.188.1]]></spbill_create_ip>
<total_fee>1</total_fee>
<trade_type>JSAPI</trade_type>
<sign><![CDATA[F88FABC7BFD25B726864DC6D6FC8313B]]></sign>
</xml>
微信服务器返回的结果是:
<xml><return_code><![CDATA[FAIL]]></return_code>
<return_msg><![CDATA[XML格式错误]]></return_msg>
</xml>
PHP中文网2017-04-17 17:31:27
あなたのデータに基づいて試してみましたが、XML 形式が間違っているというメッセージは表示されず、署名が間違っているというメッセージのみが表示されました。
それでは、コードをもう一度確認してみましょう。
Python およびその他のコーディングの問題をすべて確認します。
これはテストして渡すことができます:
リーリーPHP中文网2017-04-17 17:31:27
1.<product_id>0001</product_id> 公式テンプレートにはこのレコードがありません
2. このように書くことはできても、0001 はできません。これは 0001 の代わりに 1 を書く必要があります。