微信支付-支付結果通用通知


微信官方文檔非人類,在此整理

支付結果通用通知微信是xml的形式發送給你的,但貌似必須要用這個接收

$returnResult = $GLOBALS['HTTP_RAW_POST_DATA'];

使用$_POST接收不了,要問為何,百度腦補

接收到的數據與官方提供的字段無區別

官方demo 提供了解析方法 - 以下是我簡化后的

public function FromXml($xml)
    {

        libxml_disable_entity_loader(true);
        return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);

    }

 

解析后則是以下格式

array(
   'appid':'xxxxx',
   ....      
);

 

所有數據通過自己的邏輯保存后需要告訴微信一聲,這時候需要再將代碼組成xml發送給微信,微信給定了固定格式和字段

<xml>
  <return_code><![CDATA[SUCCESS]]></return_code>
  <return_msg><![CDATA[OK]]></return_msg>
</xml>

還是內部提供的xml組成的方法

public function ToXml($data)
    {
        $xml = "<xml>";
        foreach ($data as $key=>$val)
        {

            if (is_numeric($val)){
                $xml.="<".$key.">".$val."</".$key.">";
            }else{
                $xml.="<".$key."><![CDATA[".$val."]]></".$key.">";
            }



        }
        $xml.="</xml>";

        return $xml;
    }

有問題下方留言~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM