H5微信支付、支付宝支付
二、支付宝支付
1.支付宝支付比微信简单多了,也许是后端都配置好了,支付宝支付要在非微信浏览器里面才可以
2.根据后端自定义的接口传相应的参数(比如用户id、手机号、价格、支付方式等),成功后从返回值中取出类似form的表单的地址,这个就是拉起支付宝的东西,将此插入到当前页,打开就可以看到支付宝被拉起了
3.下面就是此页面所有的代码
$(function () {
function getQueryString(name) { //去url上的id
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
var phone = getQueryString('phone'); //手机号
var code = getQueryString('code'); //验证码
var id = getQueryString('id'); //课程id
var openid = getQueryString('openid');
var appToken = getQueryString('appToken');
//判断是否在微信浏览器
var ua = navigator.userAgent.toLowerCase();
var isWeixin = ua.indexOf('micromessenger') != -1;
if (!isWeixin) {
const params = {
id: id, //页面初始加载带的id
phone: phone, //用户手机号
smsCode: code, //用户验证码
channel: 'aliPay', //支付方式 wxPay微信 aliPay支付宝
}
/* 支付宝支付,传递后台要求的参数,返回值是一个form表单即唤起支付宝的地址 */
$.ajax({
url: base_url + '******/payMoneyForWeChatH5',
type: 'post',
dataType: "html",
headers: {
openid: openid,
appToken: appToken
},
data: JSON.stringify(params),
contentType: 'application/json;charset=UTF-8',
success: function (res) {
var res = JSON.parse(res);
if (res.code == 0) {
$('body').append(res.data.content[0].aliString);
$("form").attr("target", "_blank");
} else {
alert(res.msg)
}
},
})
}
})
爱生活、爱编程!