編碼的世界 / 優質文選 / 文明

php接收微信支付異步回調返回的數據


2022年7月10日
-   

之前在接觸的項目中,微信支付回調函數都是使用以下變量獲取POST數據:
前提:php配置中,必須啟用 always_populate_raw_post_data





  • //php.ini 配置




  • always_populate_raw_post_data = On







  • //適用於PHP版本:PHP 5 及之前




  • //獲取POST數據




  • $xml = $GLOBALS[
    'HTTP_RAW_POST_DATA'];


  • 由於之前的項目PHP版本為:php<7.0,所以使用 $GLOBALS['HTTP_RAW_POST_DATA'] 還是OK的;
    項目PHP版本升級到7.0之後的版本,微信支付回調使用上面的方法 ,獲取不到數據,需要使用:





  • //適用於PHP 7 之後




  • $xml = file_get_contents(
    "php://input");

  •     原因是PHP 7版本中已經移除了這個全局變量:'HTTP_RAW_POST_DATA',用 php://input 替代,使用 always_populate_raw_post_data 會導致在填充 $HTTP_RAW_POST_DATA 時產生 E_DEPRECATED 錯誤。
    [文章來源](https://blog.csdn.net/levent_007/article/details/80543552)

    熱門文章