h5调微信支付 unkonw url_javascript - 微信支付:H5调起支付API,直接说支付失败

问 题

我在使用java开发微信的公众号支付功能,使用的是公众号内部支付功能

第一步,统一下单接口已经调通,可以获取prepay_id(下面会有代码贴出),可是在通过JS调起支付的API的时候,直接返回的就是失败,页面有调用微信支付的窗口闪动一下,其实根本没调起来支付控件,也不知道哪里出了问题,只能在手机上调用查看,也无法进行跟踪调查,alert出来的数据直接就是失败,具体的JS代码如下

function onBridgeReady(){

var param = {};

param.openid = openid;

param.orderAmount = 11;

param.stageid = 2007;

console.log(param);

//通过下面接口获取统一下单接口参数

var url = puburl + "/wxpay/createOrderinfo";

var data = ajaxUtil.ajaxJson(url, JSON.stringify(param));

console.log(data);

if(data.code != 0) {

console.log(data);

return false;

}

var result = data.data;

alert(JSON.stringify(result));

//上面接口已经获取接口需要的数据,

//根据微信官方提供的demo就是通过下面方式进行参数赋值

WeixinJSBridge.invoke(

'getBrandWCPayRequest', {

"appId":result.appId,

"timeStamp":result.timeStamp,

"nonceStr":result.nonceStr,

"package":result.prepay_id,

"signType":result.signType,

"paySign":result.paySign

}, function(res){

//可是程序走到这一步

//打印出 res.err_msg的结果直接就是:get_brand_wcpay_request:fail

//只能在手机上调试,无法查看具体错误原因

alert(res.err_msg);

// 使用以上方式判断前端返回,

//微信团队郑重提示:res.err_msg将在用户支付成功后返回ok,

//但并不保证它绝对可靠。

if(res.err_msg == "get_brand_wcpay_request:ok" ) {

alert("支付成功!")

} else if(res.err_msg == "get_brand_wcpay_request:cancel") {

alert("支付取消!");

} else if(res.err_msg == "get_brand_wcpay_request:fail") {

alert("支付失败!");

}

}

);

}

if (typeof WeixinJSBridge == "undefined"){

if( document.addEventListener ){

document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);

}else if (document.attachEvent){

document.attachEvent('WeixinJSBridgeReady', onBridgeReady);

document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);

}

}else{

onBridgeReady();

}

希望各位大神看看有什么问题,具体如果那里没有描述清楚,请指出来我给解释或者贴代码

补充:配置的支付授权目录和支付页面的路径是一直的,这个是经过仔细确认一直的,没有任何问题!

解决方案

各位大佬,弄出来了,不好意思,忘记上来关闭问题了。

是加密不一致的问题

我在java中使用加密的时候,参数传递的竟然是prepay_id,实际必须使用package当参数的key的,所以导致跟微信的加密结果不一致,微信也是大坑,竟然使用package这样一个关键字。

扫一扫关注IT屋

微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值