微信官方文档地址;
https://pay.weixin.qq.com/wiki/doc/api/pap_sl_jt_v2.php?chapter=20_932&index=10
该链接的“
APP跳转接口调用请求说明”这部分参考写的代码。
请求的参数为:
SortedMap<Object, Object> parameters = new TreeMap<Object, Object>();parameters.put("appid", "wx***8888888"); //公众账号id 此处随便写的parameters.put("mch_id", "158888e8e8");//商户号 此处随便写的
parameters.put("nonce_str", Md5Utils.getRandomString(13));//随机字符串
//子商户公众账号 如果选择传sub_openid,则必须传sub_appid
parameters.put("sub_appid", "wx8fd88f8888"); //此处随便写的parameters.put("sub_mch_id", "15277777");//子商户号 此处随便写的parameters.put("sub_openid", mOpenid);//用户子标识
parameters.put("sign_type", "HMAC-SHA256");//签名类型 默认HMAC-SHA256
parameters.put("trade_scene", "PARKING");//交易场景
parameters.put("plate_number", mPlate_number);//车牌号
String signValue = Md5Utils.sha256_HMAC(parameters, "9999999999999998C59CFE2B");//此处的签名key随意写
parameters.put("sign", signValue);//签名
String jsonString = new Gson().toJson(parameters);
jumpToNopayWxm(jsonString);
private void jumpToNopayWxm(String extraDataJsonStr) {
String path = "/pages/route/index?" + "extraData=" + extraDataJsonStr;
/**根据path启动小程序支付*/
WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
//gh_518c42c65952:微信的车主服务小程序id
req.userName = "gh_518c42c65952"; //填车主小程序原始id,取固定值gh_518c42c65952
req.path = path; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
boolean b = WXAPIFactory.createWXAPI(this, ConfigConsts.APP_ID_WX).sendReq(req);
if (!b) {
ToastUtil.showShortToast("跳转车主服务小程序失败");
}
finish();
}
问题说明:
签名部分已经使用微信官网网站上的验证过了,签名是对的!跳转的时候一直如下图所示:提示这个错误可能是参数错误了。
参数要错的话只可能是这4个参数会错。
有谁知道这个几个参数比较通俗的解释吗?都不知道这几个参数是在哪里找的。
appid 公众账号id 是微信开放平台下绑定的那个公众号的appid吗?
mch_id 商户号 openid
用户标识 这个openid是使用appid和appid对应的秘钥获取的吧?
sub_appid 商户公众账号id 这个又是哪里的公众账号?
sub_mch_id 子商户号
sub_openid 用户子标识 这个openid是使用sub_appid和sub_appid对应的秘钥获取的吧?
现在是不管怎么改这几个参数一直提示上面的错误:请求人数较多,请稍后再试!完全进行不下去了都!
你好,请问这个请求人数过多的问题解决了吗 ?
openid和sub_openid必须要传一个,只传车牌是不行的!
请按照以下的方式进行排查:
1.使用签名校验工具"https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=20_1"中的自定义参数进行检测
2.签名校验工具通过,但实际请求失败,检查生成SIGN用的KEY是否正确,服务商模式需要使用服务商的,参数是否有按照文档内的填写
3.openid是否是属于当前这台手机的微信号
4.H5授权跳转URL排查URL格式是否正确,如是否多了空格、车牌参数中文没有URL编码转义等
注:车牌参数跳转url中需要转义,参与sign生成的时不需要