@半个朋友 你好,想跟你请教个问题:在微信公众号统一下单接口中返回值都是成功且正确的(
nonce_str=vwAHjctnajjBAlc7,
appid=*************,
sign=3C35840FB971236D8FCA245EB2EBEC6D,
trade_type=JSAPI,
return_msg=OK,
result_code=SUCCESS,
mch_id=***********,
return_code=SUCCESS,
prepay_id=wx201703071013164054ea5ccf0968839010
)
但是在调H5支付的时候,返回结果一直是get_brand_wcpay_request:fail,而且也不明白微信支付开发配置中的支付授权目录是怎么弄的,我看了你之前给别人解答的,发现没什么太大的区别,我试了好多网上说的都不行啊
这个是我配置的支付授权目录:http://域名/app/pay/;到H5页面的controller是/app/pay/payView,我那样配置支付授权目录对么?实在是搞不清楚他那个授权目录是什么鬼
prepay_id nonce_str trade_type sign这些值需要返回给h5页面做配置
以下是我通过ajax返回给h5页面的参数
Map<String, String> map = weixinPrePay(trade_no, totalAmount, description, openId, sym, request);
SortedMap<String, Object> finalpackage = new TreeMap<String, Object>();
finalpackage.put("appId", CommonUtil.APPID);
finalpackage.put("timeStamp", timeMillis);
finalpackage.put("nonceStr", randomString);
finalpackage.put("packageName", "prepay_id=" + map.get("prepay_id"));
finalpackage.put("signType", "MD5");
String sign = CommonUtil.createSign("UTF-8", finalpackage);
finalpackage.put("paySign", sign);
这些是H5页面调用接口封装的参数
WeixinJSBridge.invoke('getBrandWCPayRequest', {
"appId" : obj.appId, //公众号名称,由商户传入
"timeStamp" : obj.timeStamp, //时间戳,自 1970 年以来的秒数
"nonceStr" : obj.nonceStr, //随机串
"package" : obj.packageName, //商品包信息
"signType" : obj.signType, //微信签名方式
"paySign" : obj.paySign
}, function(res) {
if (res.err_msg == "get_brand_wcpay_request:ok") {
var url = "/app/gametype?type=" + type + "&openId=" + openId
+ "&orderId=" + orderId;
window.location.replace(url);
} else {
alert(res.err_msg);
}
});