WxPay.JsApiPay.php文件下
原始接口代碼
/** * * 獲取jsapi支付的參數 * @param array $UnifiedOrderResult 統一支付接口返回的數據 * @throws WxPayException * * @return json數據,可直接填入js函數作為參數 */ public function GetJsApiParameters($UnifiedOrderResult) { if(!array_key_exists("appid", $UnifiedOrderResult) || !array_key_exists("prepay_id", $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == "") { throw new WxPayException("參數錯誤"); } $jsapi = new WxPayJsApiPay(); $jsapi->SetAppid($UnifiedOrderResult["appid"]); $timeStamp = time(); $jsapi->SetTimeStamp("$timeStamp"); $jsapi->SetNonceStr(WxPayApi::getNonceStr()); $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']); $jsapi->SetSignType("MD5"); $jsapi->SetPaySign($jsapi->MakeSign()); $parameters = json_encode($jsapi->GetValues()); return $parameters; }
可修改為
/** * * 獲取jsapi支付的參數 * @param array $UnifiedOrderResult 統一支付接口返回的數據 * @throws WxPayException * * @return json數據,可直接填入js函數作為參數 */ public function GetJsApiParameters($UnifiedOrderResult) { if(!array_key_exists("appid", $UnifiedOrderResult) || !array_key_exists("prepay_id", $UnifiedOrderResult) || $UnifiedOrderResult['prepay_id'] == "") { throw new WxPayException("參數錯誤"); } $jsapi = new WxPayJsApiPay(); $jsapi->SetAppid($UnifiedOrderResult["appid"]); $timeStamp = time(); $jsapi->SetTimeStamp((string)$timeStamp); // 本行代碼加上原始加上雙引號是想轉換為字符串但是並沒什么卵用需要手動強制轉換 $jsapi->SetNonceStr(WxPayApi::getNonceStr()); $jsapi->SetPackage("prepay_id=" . $UnifiedOrderResult['prepay_id']); $jsapi->SetSignType("MD5"); $jsapi->SetPaySign($jsapi->MakeSign()); $parameters = json_encode($jsapi->GetValues()); return $parameters; }
也可以直接改
WxPay.Data.php文件下的
原始接口代碼
/** * 設置支付時間戳 * @param string $value **/ public function SetTimeStamp($value) { $this->values['timeStamp'] = $value; }
修改為
/** * 設置支付時間戳 * @param string $value **/ public function SetTimeStamp($value) { $this->values['timeStamp'] = (string)$value; }
修改原理同上只需改一個文件即可