亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP微信支付結果通知與回調策略分析

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

本文實例講述了PHP微信支付結果通知與回調策略。分享給大家供大家參考,具體如下:

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

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

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

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

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

$str='<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';exit($str);
//微信支付回調public function order_notice(){    $xml = $GLOBALS['HTTP_RAW_POST_DATA'];    //將服務器返回的XML數據轉化為數組    $data = $this->FromXml($xml);    // 保存微信服務器返回的簽名sign    $data_sign = $data['sign'];    // sign不參與簽名算法    unset($data['sign']);    //$sign = self::makeSign($data);    $sign = $this->makeSign($data);    Clog::setLog($data,'order_notice');    // 判斷簽名是否正確 判斷支付狀態    if ( ($sign===$data_sign) && ($data['return_code']=='SUCCESS') && ($data['result_code']=='SUCCESS') ) {      //獲取服務器返回的數據      $order_num = $data['out_trade_no'];     //訂單單號      $openid = $data['openid'];         //付款人openID      $total_fee = $data['total_fee'];      //付款金額      $transaction_id = $data['transaction_id']; //微信支付流水號      $res = $this->order_notice_data_deal($order_num,$openid,$total_fee,$transaction_id);      if (!$res) {        $result = -2;      } else {        $result = 0;      }    }else{      $result = -1;    }    // 返回狀態給微信服務器    if ($result == 0) { // 成功之后不會再回調      $str='<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>';    } elseif ($result == -1){ // 失敗后會繼續發送幾次回調      $str='<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[簽名失敗]]></return_msg></xml>';    } elseif ($result == -2) { // 失敗后會繼續發送幾次回調      $str='<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[更改狀態失敗]]></return_msg></xml>';    }    Clog::setLog($result,'order_notice_result');    exit($str);}

附上微信支付助手函數

public function ToXml($array){    if(!is_array($array)|| count($array) <= 0){      return ;    }    $xml = '<xml version="1.0">';    foreach ($array as $key=>$val){      if (is_numeric($val)){        $xml.="<".$key.">".$val."</".$key.">";      }else{        $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";      }    }    $xml.="</xml>";    return $xml;}public function FromXml($xml){    if(!$xml){      // 人工拋出錯誤      throw new Exception("xml數據異常!");    }    //將XML轉為array    //禁止引用外部xml實體    libxml_disable_entity_loader(true);    $this->values = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);    return $this->values;}public function MakeSign($data){    //簽名步驟一:按字典序排序參數    ksort($data);    $string = $this->ToUrlParams($data);    //簽名步驟二:在string后加入KEY    $string = $string . "&key=".C('WEIXIN_PAY_KEY');    //簽名步驟三:MD5加密    $string = md5($string);    //簽名步驟四:所有字符轉為大寫    $result = strtoupper($string);    return $result;}public function ToUrlParams($array){    $buff = "";    foreach ($array as $k => $v)    {      if($k != "sign" && $v != "" && !is_array($v)){        $buff .= $k . "=" . $v . "&";      }    }    $buff = trim($buff, "&");    return $buff;}// createNonceStrpublic function createNonceStr($length = 16) {    $chars = "abcdefghijklmnopqrstuvwxyz0123456789";    $str ="";    for ( $i = 0; $i < $length; $i++ ) {      $str .= substr($chars, mt_rand(0, strlen($chars)-1), 1);    }    return $str;}

希望本文所述對大家PHP程序設計有所幫助。


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

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合久久天天综线观看| www.久久久久久.com| 日韩经典第一页| 中文字幕不卡在线视频极品| 国产精品福利在线观看网址| 亚洲美女又黄又爽在线观看| 国内精品小视频在线观看| 亚洲精品国产精品国自产在线| 国产高清视频一区三区| 欧美一区亚洲一区| 欧美日韩午夜激情| 国产精品久久久久久久一区探花| 26uuu亚洲国产精品| 日韩在线激情视频| 欧美日韩电影在线观看| 亚洲欧美成人在线| 国产精选久久久久久| 中文字幕精品在线| 视频一区视频二区国产精品| 国产一区二区三区在线| 国产日韩在线看片| 国产精品美女视频网站| 日韩av高清不卡| **欧美日韩vr在线| 一道本无吗dⅴd在线播放一区| 欧美精品在线观看91| 亚洲精品成人网| 欧美日韩午夜视频在线观看| 久久综合久中文字幕青草| 午夜精品福利视频| 91国产视频在线播放| 日韩av手机在线观看| 日韩欧美精品在线观看| 国产福利视频一区| 在线看福利67194| 日韩中文字幕在线播放| 亚洲自拍偷拍一区| 亚洲色图35p| 久久中文久久字幕| 国产精品久久久久久久久久新婚| 91视频国产精品| 成人免费观看a| 久久精品色欧美aⅴ一区二区| 国产精品中文久久久久久久| 欧美一级在线播放| 黄色成人av在线| 久久久成人av| 国产免费成人av| 久久久久久国产三级电影| 日韩经典中文字幕在线观看| 国产精品久久久91| 亚洲xxx大片| 亚洲第一中文字幕在线观看| 久久成人在线视频| 欧美丝袜一区二区| 亚洲国产精品久久久久秋霞不卡| 国产精品揄拍500视频| 伊人男人综合视频网| 国产精品久久综合av爱欲tv| 亚洲国产精品久久| 国产成人在线亚洲欧美| 亚洲第五色综合网| 日韩精品免费一线在线观看| 亚洲精品视频中文字幕| 成人欧美一区二区三区黑人| 精品国偷自产在线| 亚洲欧美日韩成人| xvideos国产精品| 日韩亚洲欧美成人| 91精品中国老女人| 97视频com| 国产精品高潮呻吟久久av黑人| 26uuu另类亚洲欧美日本老年| 色婷婷久久一区二区| 欧美区在线播放| 久久久久久久久久久久久久久久久久av| 日韩中文字幕在线精品| 国产成人啪精品视频免费网| 国内精品久久久久久影视8| 久久久久一本一区二区青青蜜月| 色婷婷成人综合| 国内外成人免费激情在线视频网站| 亚洲国产天堂网精品网站| 2019中文字幕全在线观看| 日韩av中文字幕在线| 91天堂在线观看| 91在线视频导航| 欧日韩不卡在线视频| 国产盗摄xxxx视频xxx69| 91欧美激情另类亚洲| 青青草原成人在线视频| 亚洲激情视频在线观看| 久久五月情影视| 久久精品国产精品| 俺去亚洲欧洲欧美日韩| 91免费看片在线| 久久久久久亚洲精品不卡| 国产精品69av| 91精品啪在线观看麻豆免费| 久久精品青青大伊人av| 欧美亚洲激情在线| 欧美性感美女h网站在线观看免费| 97人洗澡人人免费公开视频碰碰碰| 久久中文字幕一区| 免费av一区二区| 亚洲视屏在线播放| 久久久免费高清电视剧观看| 97av在线播放| 久久在线视频在线| 国产精品盗摄久久久| 日韩久久免费视频| 日韩专区中文字幕| 国产精品福利在线观看网址| 久久精品一本久久99精品| www国产亚洲精品久久网站| 亚洲国产高清高潮精品美女| 成人妇女免费播放久久久| 亚洲欧美综合另类中字| 亚洲aⅴ男人的天堂在线观看| 中文字幕视频一区二区在线有码| 国产精品美乳在线观看| 久久精品免费电影| 日韩欧美在线免费| 久久久亚洲天堂| 中文字幕在线视频日韩| www日韩中文字幕在线看| 成人欧美一区二区三区黑人孕妇| 亚洲福利影片在线| 日本国产欧美一区二区三区| 久久99亚洲热视| 在线播放国产精品| 日韩欧美在线第一页| 亚洲视频在线播放| 欧美精品一本久久男人的天堂| 久久久精品久久久| 亚洲一区二区三区四区视频| 热re91久久精品国99热蜜臀| 亚洲a在线观看| 欧美精品18videos性欧美| 国产精品白丝av嫩草影院| 欧美激情2020午夜免费观看| 日韩精品高清在线| 久久久免费精品| 91精品视频一区| 欧美第一黄网免费网站| 韩国国内大量揄拍精品视频| 欧美亚洲日本黄色| 97avcom| 国产啪精品视频网站| 欧美日韩亚洲一区二区| 国产精品第一视频| 国产日韩欧美91| 97久久伊人激情网| 日韩在线观看免费全集电视剧网站| 免费不卡在线观看av| 精品亚洲国产成av人片传媒| 日本sm极度另类视频| 国产日韩欧美综合| 亚洲视频在线视频| 中文字幕国产精品久久| 中文亚洲视频在线| 国产精品自拍偷拍| 久久视频国产精品免费视频在线| 成人福利视频在线观看|