lj-publish-test3
Version:
A magical vue admin. Typical templates for enterprise applications. Newest development stack of vue. Lots of awesome features
117 lines (102 loc) • 3.9 kB
HTML
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>微信支付</title>
<script src="./cdn/jquery.min.js"></script>
<script src="./cdn/jweixin-1.2.0.js"></script>
</head>
<body>
<div id="pay">微信支付</div>
</body>
<script>
var paySign ;
var appId ;
var timeStamp ;
var nonceStr ;
var packageStr ;
var signType ;
// $('#pay').on('click',function(){
// window.location.href="../index.html#/nordaq_shopRecharge"
// })
//http://inner.x9water.com/newoamtest/static/getWeChartRole.html?c=011WciTm0aMBcn1PApUm0O5k9w3WciTr&s=5f23de36aa9a3b719b5a4efa
var currUrl = window.location.href
console.log('111',GetUrlParams(currUrl))
let {c:code,s:wxPayOrderId}=GetUrlParams(currUrl)
var url="http://priv.x9water.com:18080/kinder/wxPayJSAPI"
window.$.ajax({
method: 'post',
url: url,
async: false,
dataType: 'json',
headers: {
'Content-Type': 'application/json'
},
data: JSON.stringify({ 'dbname': 'lora', "_id.wxPayOrderId":wxPayOrderId, code, 'not_token': true }),
success: function(res) {
console.log("---code---",res)
const data = res.data
if(data != null){
appId = data.appId;
paySign = data.paySign;
timeStamp = data.timeStamp;
nonceStr = data.nonceStr;
packageStr = data.package;
signType = data.signType;
callpay();
}else{
alert("统一下单失败");
}
}
})
function GetUrlParams(param){
var url = param || location.href // 获取url中"?"符后的字串
var theRequest = {}
var startpos = url.indexOf('?')
if (startpos > -1) {
let str = url.substr(startpos + 1)
if (str.indexOf('#/') > -1) str = str.substr(0, str.indexOf('#/'))
const strs = str.split('&')
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split('=')[0]] = unescape(strs[i].slice(strs[i].indexOf('=') + 1)) // unescape(strs[i].split('=')[1])
}
}
return theRequest
}
function onBridgeReady(){
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
"appId":appId, //公众号名称,由商户传入
"timeStamp":timeStamp, //时间戳,自1970年以来的秒数
"nonceStr":nonceStr , //随机串
"package":packageStr, //预支付交易会话标识
"signType":signType, //微信签名方式
"paySign":paySign //微信签名
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ) {
alert("ok");
// window.location.href='${base}/personal.htm';
}else if(res.err_msg == "get_brand_wcpay_request:cancel"){
}else if(res.err_msg == "get_brand_wcpay_request:fail" ){
alert('支付失败');
} //使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
}
);
}
function callpay(){
if (typeof WeixinJSBridge == "undefined"){
// alert('微信支付必须在微信内置浏览器中使用.');
if( document.addEventListener ){
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
}else if (document.attachEvent){
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
}else{
onBridgeReady();
}
}
</script>
</html>