https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_7
微信的服务器发送数据告诉本机支付成功了:
<xml>
<appid><![CDATA[wx2421b1c4370ec43b]]></appid>
<attach><![CDATA[支付测试]]></attach>
<bank_type><![CDATA[CFT]]></bank_type>
<fee_type><![CDATA[CNY]]></fee_type>
<is_subscribe><![CDATA[Y]]></is_subscribe>
<mch_id><![CDATA[10000100]]></mch_id>
<nonce_str><![CDATA[5d2b6c2a8db53831f7eda20af46e531c]]></nonce_str>
<openid><![CDATA[oUpF8uMEb4qRXf22hE3X68TekukE]]></openid>
<out_trade_no><![CDATA[1409811653]]></out_trade_no>
<result_code><![CDATA[SUCCESS]]></result_code>
<return_code><![CDATA[SUCCESS]]></return_code>
<sign><![CDATA[B552ED6B279343CB493C5DD0D78AB241]]></sign>
<time_end><![CDATA[20140903131540]]></time_end>
<total_fee>1</total_fee>
<coupon_fee><![CDATA[10]]></coupon_fee>
<coupon_count><![CDATA[1]]></coupon_count>
<coupon_type><![CDATA[CASH]]></coupon_type>
<coupon_id><![CDATA[10000]]></coupon_id>
<trade_type><![CDATA[JSAPI]]></trade_type>
<transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
</xml>
本机回应以下数据:
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
</xml>
如果本机不回, 那么微信服务器会继续再发几次, 但是我感觉这个回应数据什么信息都不用带, 要是有很多订单, 怎么知道是回应哪个订单?
离线
我一直纳闷, 为什么不回应 交易流水Id信息?
<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[OK]]></return_msg>
<transaction_id><![CDATA[1004400740201409030005092168]]></transaction_id>
</xml>
离线
微信服务器端发给notify地址里面包含了 out_trade_no ,这个是你自编的业务订单号,需要你根据result_code,return_code来相应更新你自己数据库里该订单号纪录的状态,并【同步】返回相应结论状态给微信服务器。
问题是微信服务器怎么知道我回应的是哪一单呢?
离线
pythinker 说:问题是微信服务器怎么知道我回应的是哪一单呢?
它带参(out_trade_no等等)post给你的notify地址,你返回相应的状态回来,必然能知道返回的就是针对这个out_trade_no啊。
感谢回复, 可是http/https是无状态协议, 如果回复的消息内容不携带out_trade_no, 微信服务器根本不知道回复的是哪条消息?
离线
楼主理解错误吧。
两个http请求之间是没有记忆的;但是同一个http请求和应答是成对的。也就是http总是一个request对应一个response,而且是在同一个TCP连接里。
大佬早上好,感谢提醒,晚点我用抓包工具确定一下是不是在同一TCP连接里面。
离线