首页 > 代码库 > 微信v3 JSAPI最新接口错误 get_brand_wcpay_request:fail

微信v3 JSAPI最新接口错误 get_brand_wcpay_request:fail

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;    }

修改原理同上只需改一个文件即可

 

微信v3 JSAPI最新接口错误 get_brand_wcpay_request:fail