zoukankan      html  css  js  c++  java
  • 微信支付 get_brand_wcpay_request fail,Undefined variable: openid

    本文将为您描述微信H5支付,微信JSAPI支付返回支付签名验证失败的解决方法

    微信JSAPI支付时报这个错误

    查看错误详情

    alert(JSON.stringify(res))

    微信商户平台相关设置: 

    场景介绍

    商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程。(用户打开商户网页选购商品,发起支付,在网页通过JavaScript调用getBrandWCPayRequest接口,发起微信支付请求,用户进入支付流程)

    步骤(1):商户下发图文消息或者通过自定义菜单吸引用户点击进入商户网页。

    步骤(2):进入商户网页,用户选择购买,完成选购流程。

    步骤(3):调起微信支付控件,用户开始输入支付密码。

    步骤(4):密码验证通过,支付成功。商户后台得到支付成功的通知。

    在步骤3的时候发生异常,没有成功唤起微信支付控件,打印js错误,显示 get_brand_wcpay_request fail

    在微信商户平台里面的开发配置找到支付授权目录 点击添加

    将当前 请求的url的地址异步请求的地址当前请求的上一级地址 都添加到微信商户平台的支付授权目录中,即可解决问题!

    如图所示:

    如果还是不行,

    1) 使用微信的在线签名工具检查签名是否和程序生成的一致

    https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1 签名工具用谷歌打开。

    选择MD5,XML,然后把请求参数xml放进去,就能校验签名。

    2)如果和微信的在线签名工具一致,说明程序没有错误,确定是API密钥错误(被别人改动或者记错了)

    在商户平台的账户信息中更改API密钥(账户设置-安全设置-API安全), 15分钟后生效

    2.1)统一下单用的是A商户号,也必须是A商户号登陆商户平台设置key才对。

    2.2)要注意统一下单请求参数中total_fee参数的类型是int类型。

    3) 如果和微信的在线签名工具不一致,说明程序有错误,常见的错误可能是:

    3.1) 编码问题,确保所有的都是utf-8的. 如果有中文, 可以先把中文改成英文重新签名,看是否签名错误,如果英文不会错中文才会错,基本肯定是编码问题

    3.2:)消息中字段大小写和文档中完全一致

    4 统一下单和调起支付签名类型需要一致。

  • 相关阅读:
    分布式存储
    存储知识学习
    洛谷 P1003 铺地毯 (C/C++, JAVA)
    多线程面试题系列3_生产者消费者模式的两种实现方法
    多线程面试题系列2_监视线程的简单实现
    多线程面试题系列1_数组多线程分解
    《深度学习》阅读笔记1
    素数在两种常见情况下的标准最优算法
    dfs与dp算法之关系与经典入门例题
    百度之星资格赛2018B题-子串查询
  • 原文地址:https://www.cnblogs.com/sirdong/p/11780346.html
Copyright © 2011-2022 走看看