本篇文章給大家帶來的內容是關於php對支付的回調非同步處理過程,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
支付回調處理分為
1.同步
2.非同步
這裡官方推薦使用 第二種
php對回調非同步處理
//擷取返回的xml$testxml = file_get_contents("php://input");//將xml轉化為json格式$jsonxml = json_encode(simplexml_load_string($testxml, 'SimpleXMLElement', LIBXML_NOCDATA));//轉成數組$result = json_decode($jsonxml, true);if($result){ //如果成功返回了 if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){ //進行改變訂單狀態等操作。。。。 }}
本次支付返回的xml轉化為json格式如下:
{ "appid": "12345", "attach": "pay", "bank_type": "CFT", "cash_fee": "1", "fee_type": "CNY", "is_subscribe": "Y", "mch_id": "12345", "nonce_str": "dZYFpaDYRpF5rwhv", "openid": "onhwF1hiutUySKCsrV21A6MCtT5Q", "out_trade_no": "SH201808222055598628", "result_code": "SUCCESS", "return_code": "SUCCESS", "sign": "5A019F52BEF1C3A98AE0F1FF29D01574", "time_end": "20180822205606", "total_fee": "1", "trade_type": "MWEB", "transaction_id": "4200000171201808221550954201"}
其中
"result_code": "SUCCESS","return_code": "SUCCESS",
是判斷使用者是否已經支付的依據