微信公共号支付报错:get_brand_wcpay_request:fail

本文介绍了在实现微信公众号支付过程中遇到的问题及解决方法。通过在代码中加入特定指令以显示详细错误信息,发现问题是由于页面地址未授权导致。将当前页面地址添加到微信支付后台授权列表后,成功解决了get_brand_wcpay_request:fail的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做微信公共号支付时遇到了一个问题:点击支付时总是提示get_brand_wcpay_request:fail

解决办法:在代码中加入下图红框中的代码,用来显示具体的错误信息,我这的原因主要我当前页面的地址没有授权,进入微信支付后台后,把当前页面地址添加了,就可以了。当然还有其他的原因的引起这个错误,可以根据自己具体的错误来找解决办法。

希望可以帮助到大家。


### 微信公众号前端实现微信支付流程 #### 获取用户授权并获得OpenID 为了能够顺利进行支付操作,首先需要获取用户的OpenID。这一步骤通常是在用户首次访问页面时完成的。开发者可以通过OAuth2.0授权机制来获取用户的OpenID和其他基本信息。 ```javascript // 使用wx.login()获取code,再通过后端换取openid wx.login({ success (res) { if (res.code) { // 将 code 发送到服务器交换 openid 和 session_key wx.request({ url: 'your_server_url', data: { js_code: res.code }, method: 'GET' }) } } }) ``` #### 创建统一订单 当用户选择了要购买的商品和服务,并点击了付款按钮之后,前端应当向自己的后台发送请求创建一个预支付交易单。这个过程涉及到调用`createUnifiedOrder`接口[^4]。 ```javascript function createPrepayId(orderInfo){ return new Promise((resolve,reject)=>{ uni.request({ url:'/api/thirdParty/weChatPay/createUnifiedOrder',// 后台处理地址 method:'POST', data:{ ...orderInfo, trade_type:"JSAPI", // 此处固定为 JSAPI 表明是公众号内支付 notify_url:"http://example.com/pay/notify" // 支付成功后的回调通知URL }, success:(response)=>{ resolve(response); }, fail:error=>{ reject(error); } }); }); } ``` #### 调用微信支付插件 一旦获得了预支付id(prepay_id),就可以准备调用WeixinJSBridge对象下的invoke方法来启动支付界面。在此之前还需要准备好其他必要的签名参数如timestamp、nonceStr等[^1]。 ```html <script type="text/javascript"> if (typeof WeixinJSBridge === "undefined"){ document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); }else{ onBridgeReady(); } function onBridgeReady(){ var payData = ${JSON.stringify(prepayData)}; // prepayData由上一步返回的数据组装而成 WeixinJSBridge.invoke( 'getBrandWCPayRequest',{ appId : payData.appId, timeStamp : payData.timeStamp, nonceStr : payData.nonceStr, package : `prepay_id=${payData.prepay_id}`, signType : 'MD5', paySign : payData.paySign }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok"){ alert("支付成功!"); }else{ alert(JSON.stringify(res)); } } ); } </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值