本文是最近写项目遇到的一些问题,纯属个人笔记,目的是为了使作者忘不了。
静默登录获取code和openid等信息,至于用处看自己情况来
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(function () {
const APPid = "要使用的appid";
let local = window.location.href;
var zt = jequcode('code');
if( zt == null || zt === ''){
window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+APPid+"&redirect_uri=" + encodeURIComponent(local)+ "&response_type=code&scope=snsapi_base#wechat_redirect";
}else{
$.ajax({
data:{"code":zt},
url:'后台接口地址',
type:"POST",
dataType:"json",
success:function (data) {
console.log(data);
var a = JSON.parse(data)
var b= a.openid;
var c = a.access_token;
$.ajax({
url:"后台接口地址",
data:{"openid":b,"access_token":c,"refresh_token":a.refresh_token},
dataType:'json',
type:'POST',
success:function (res) {
console.log(res);
},error:function (res) {
console.log(res);
}
})
},
error:function (data) {
alert("失败");
}
})
}
function jequcode(name) {
var reg = new RegExp('(^|$)'+name+'=([^&]*)(&|$)')
var r = window.location.search.substr(1).match(reg)
if (r != null) return unescape(r[2]);
return null;
}
}
点击支付按钮支付
<script type="text/javascript">
$("#ljzf").click(function () {
$("#ljzf").attr("disabled","disabled");
$.ajax({
data: {"orderid":"我是订单号"},
url:"后台获取订单号,返回appid、微信签名等",
type:'POST',
dataType:'json',
success:function (res) {
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(JSON.stringify(res));
}
},
error:function (res) {
console.log(res);
}
})
})
function zhifujieguo() {
var datas = {"orderid":"我是订单号"};
$.ajax({
url:"后台获取支付结果的接口",
data: datas ,
type: "POST",
dataType: "json",
success:function (ress) {
if(ress == "支付成功"){
alert(ress);
window.location.href="看情况写跳转网址";
}else{
alert(ress);
}
},
error:function (ress) {
alert(ress)
}
})
}
function onBridgeReady(a){
var data = JSON.parse(a)
WeixinJSBridge.invoke(
'getBrandWCPayRequest',{
"appId":String(data.appId),
"timeStamp":String(data.timeStamp),
"nonceStr":String(data.nonceStr),
"package":String(data.package),
"signType":String(data.signType),
"paySign":String(data.paySign),
},
function (res) {
zhifujieguo();
});
}
</script>
仅供参考,纯属个人笔记。