<%String check = Pay.WxJsApiCheck();%> //获取微信支付所需check 详情看http://www.cnblogs.com/tianhao2017/p/7243132.html
<script type="text/javascript">
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
<%=check%>,// 必填,签名,见附录1
jsApiList: ['chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
$(function() {
var access_code='';
var uri = encodeURIComponent("url");//支付页面,发起授权之后微信回调到该地址
var access_code = getQueryString('code');
var appid = "";//用户appid
if (access_code == null) {
var fromurl = location.href; //获取授权code的回调地址,获取到code,直接返回到当前页
var url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=‘+appid+’&redirect_uri='+uri+'&response_type=code&scope=snsapi_base&state=123#wechat_redirect';
location.href = url;
} else {
$.ajax({ //ajax请求后台获取openid
url : '../postOpenid',
type : 'post',
data : {
code : access_code
},
dataType : 'text',
success : function(data) {
if(data==null){
layer.open({
content : '异常,请联系客服',
skin : 'msg',
time : 2
});
return false;
}else{
var shouprices= $("#shopprices").val();
var recharge=$("#recharge").val();
var kuaikeId=$("#kuaikeId").val();
var xiaId=$("#xiaId").val();
var openid=data;
$.ajax({
type : 'post',
url : '../toPay',
data : {
openid:openid,
shouprices:shouprices,
xiaid:xiaId,
kuaikeId:kuaikeId,
recharge:recharge
},
dataType : 'text',
success : function(result) {
var timestamp = result.substring(13,23).toString();
var nonceStr = result.substring(37,47).toString();
var paySign = result.substring(60,92).toString();
var package1 = result.substring(105,151).toString();
wx.checkJsApi({
jsApiList: ['chooseWXPay'], // 检查微信支付接口是否可用
success: function (res) {
if(res.checkResult.chooseWXPay){
wx.chooseWXPay({
'timestamp':timestamp,
'nonceStr':nonceStr,
'package':package1,
'paySign':paySign,
'signType':'MD5'
, // 支付签名
cancel:function(res){
//支付取消
},
error:function(res){
//支付出错
},
success:function(res){
if(recharge=="balance"){
//成功
}
},
})
}
},error:function(index){
layer.open({
content : '异常,请联系客服',
skin : 'msg',
time : 2
});
return false;
}
});
},error:function(index){
layer.open({
content : '异常,请联系客服',
skin : 'msg',
time : 2
});
return false;
}
});
}
}
});
}
})
function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = location.search.substr(1).match(reg);
if (r != null)
return unescape(decodeURI(r[2]));
return null;
}
</script>