1. 程式人生 > >php廢棄$GLOBALS['HTTP_RAW_POST_DATA'] 微信開發需注意

php廢棄$GLOBALS['HTTP_RAW_POST_DATA'] 微信開發需注意

最近升級php7後,在檢查以往專案的時候,發現微信支付失效了,檢查很久又沒有報錯,最後一個地方一個地方的echo,才發現有地方獲取不到值。
php7使用$GLOBALS[‘HTTP_RAW_POST_DATA’] 獲取不到資料,改為用file_get_contents(“php://input”)代替就正常了。
剛好在微信lib包裡面就有用到,檢查了大半天,才發現在lib包這麼深入的地方,

WxPay.Api.php這個檔案414行有用到,大家在開發的時候可以注意一下

/**
     * 
     * 支付結果通用通知
     * @param function $callback
     * 直接回調函式使用方法: notify(you_function);
     * 回撥類成員函式方法:notify(array($this, you_function));
     * $callback  原型為:function function_name($data){}
     */
public static function notify($callback, &$msg) { //獲取通知的資料 ******* //$xml = $GLOBALS['HTTP_RAW_POST_DATA']; $xml = file_get_contents("php://input"); //如果返回成功則驗證簽名 try { $result = WxPayResults::Init($xml); } catch (WxPayException $e){ $msg
= $e->errorMessage(); return false; } return call_user_func($callback, $result); }