国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php對微信支付回調處理的方法

2024-05-05 00:05:07
字體:
來源:轉載
供稿:網友

應用場景

支付完成后,微信會把相關支付結果和用戶信息發送給商戶,商戶需要接收處理,并返回應答。

對后臺通知交互時,如果微信收到商戶的應答不是成功或超時,微信認為通知失敗,微信會通過一定的策略定期重新發起通知,盡可能提高通知的成功率,但微信不保證通知最終能成功。 (通知頻率為15/15/30/180/1800/1800/1800/1800/3600,單位:秒)

注意:同樣的通知可能會多次發送給商戶系統。商戶系統必須能夠正確處理重復的通知。

推薦的做法是,當收到通知進行處理時,首先檢查對應業務數據的狀態,判斷該通知是否已經處理過,如果沒有處理過再進行處理,如果處理過直接返回結果成功。在對業務數據進行狀態檢查和處理之前,要采用數據鎖進行并發控制,以避免函數重入造成的數據混亂。

特別提醒:商戶系統對于支付結果通知的內容一定要做簽名驗證,并校驗返回的訂單金額是否與商戶側的訂單金額一致,防止數據泄漏導致出現“假通知”,造成資金損失。

微信支付回調處理分為

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",

是判斷用戶是否已經支付的依據

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 特克斯县| 湘潭县| 农安县| 镇康县| 沾化县| 高碑店市| 封开县| 清丰县| 普陀区| 海兴县| 凌源市| 黎川县| 铜梁县| 大荔县| 轮台县| 新绛县| 三江| 松原市| 高台县| 桑植县| 富顺县| 聊城市| 哈密市| 佛山市| 措勤县| 蒙阴县| 乌审旗| 增城市| 伊金霍洛旗| 清新县| 武乡县| 屏东县| 漾濞| 柏乡县| 湘西| 永安市| 全州县| 广安市| 宣武区| 前郭尔| 贺兰县|