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

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

时间: 2024-10-13 05:32:23

微信v3 JSAPI最新接口错误 get_brand_wcpay_request:fail的相关文章

微信支付 get_brand_wcpay_request fail,Undefined variable: openid

本文将为您描述微信H5支付,微信JSAPI支付返回支付签名验证失败的解决方法 微信JSAPI支付时报这个错误 查看错误详情 alert(JSON.stringify(res)) 微信商户平台相关设置: 场景介绍 商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程.(用户打开商户网页选购商品,发起支付,在网页通过JavaScript调用getBrandWCPayRequest接口,发起微信支付请求,用户进入支付流程) 步骤(1):商户下发图文消息或

JAVA版微信支付V3—JSAPI支付

本人做的是微信V3版本的微信支付,也是目前最新的微信支付接口.官方文档下载地址 https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmpl&lang=zh_CN

在.net core上,Web网站调用微信支付-统一下单接口(xml传参)一直返回错误:mch_id参数格式错误

这是 微信支付-统一下单 接口文档 一.问题描述 在调用统一下单接口时,报mch_id参数格式错误,但商户ID确实是10位数字正确的,可就是一直报这个错误 返回的错误xml如下: 二.排错过程 1.多次对比官网xml格式,确认生成的xml是否有误 2.检查生成的xml是否带有空格.字段是否拼写有误,检查生成的xml是否有缺少或多字符 官方的xml: 我开发过程中生成的xml: 对比发现,我生成的xml参数比官方的参数多了CDATA等着字符,但CDATA标签是用于说明数据不被XML解析器解析的,不

微信公众平台最新开放JS-SDK11类接口!

这个SDK包提供了 11 类接口集,微信开发人员可以调用以下功能,基于微信的 Web-App 提供更好的体验. 分享类接口:图像类接口:音频类接口:智能类接口:设备信息类接口:地理位置类接口:界面操作类接口:微信扫一扫接口:微信小店接口:微信卡券接口:微信支付接口.这些接口中,除了图像类接口和地理位置类接口中的部分功能,其他大多数本身就是微信才有的功能,无法靠标准浏览器提供的接口获得.所以,有了这个 JS-SDK,今后基于微信的 Web-App 能提供给用户的功能一下子变多了起来:语音聊天.识别

微信支付-JSAPI支付V3-查询订单

接口链接 https://api.mch.weixin.qq.com/pay/orderquery 请求参数: 字段名 变量名 必填 类型 示例值 描述 公众账号ID appid 是 String(32) wx8888888888888888 微信分配的公众账号ID 商户号 mch_id 是 String(32) 1900000109 微信支付分配的商户号 微信订单号 transaction_id 否 String(32) 013467007045764 微信的订单号,优先使用 商户订单号 ou

微信JS-SDK之图像接口开发详解

由于现在手头的项目中有一个上传证件照认证的功能(手机端),之前的思路是直接点击上传,然后直接将图片上传到服务器去,这篇文章有讲到(http://www.cnblogs.com/it-cen/p/4535219.html),但在微信里打开网页去上传,速度并不快,而且,假如我上传一张2M大的图片,也没有对其进行压缩处理,这样很影响上传和下载的速度. 所以,我这里借助微信JSSDK的图像接口对其进行开发实现图片上传的功能,为何我选择此接口?第一,目前的项目是在微信中打开的网页,利用此接口,性能肯定是好

微信小程序最新版本已更新下载(1.02.1805160)

微信小程序最新版本已更新下载(1.02.1805160) windows 64 . windows 32 . mac 2018.05.16 基础库更新(2.0.8) 1.仅针对开发工具,更新小程序/小游戏转发相关接口,移除转发回调 2018.05.15 基础库更新(2.0.7) A 新增 素材管理功能 详情 A 新增 工具栏右键进行工具栏管理 详情 A 新增 独立窗口显示模拟器和调试器的功能 详情 A 新增 可以在工具栏切换小程序模式和插件模式 A 新增 小程序使用的插件有更新时,在控制台提示插

PHP玩转微信公众平台自定义接口

从微信公众平台开通自定义回复后,就一直在关注微信接口这一块,很想用自定义回复这块做个站长工具的查询,例如PR查询,备案查询等,输入网址信息,就能自动获取PR,获取备案信息,应该是一个不错的想法.不过以前一直不支持自定义API,只能是一些固定的信息回复.最近微信公众平台终于开放第三方接口了,也就是说,可以根据用户提交的信息,来自定义回复内容,非常方便. 看到了微信的自定义第三方接口的强大后,下面我们来讲讲怎么实现自定义回复. 首先我们进入第三方接口的页面进行注册,地址:http://mp.weix

学习node js 之微信公众帐号接口开发 准备工作

绪:因工作需要,最近开始学习Node js,之前隐隐约约听到过node js 但没有实际见到过,只好google了:至于什么是node js,能做些什么,有多么好,或者有哪些弊端我这里就不多说了,因为我也说不来. 注:因工作系统平台是windows环境,所以这一系列开发测试都以windows系统.(win7)系统: 一.准备工作: node js 安装 1. 进入node js官网,选择INSERTALL 会下载 xxxxx 86.msi 版本的:这个版本会把node js 和npm都安装好: