最近做完了一个项目,正好没事做,产品经理就给我安排了一个任务。
做一个像收钱吧这样可以统一扫码收钱的功能。
一开始并不知道是怎么实现的,咨询了好几个朋友,才知道大概的业务流程:先是开一个网页用来判断支付平台,是微信还是支付宝,判断过后就好办了,直接照搬微信支付和支付宝的官方文档。不过微信的文档感觉有点坑,得多花点心思。
现在讲讲怎么实现微信支付网页支付,也就是公众号支付:
1.判断支付平台,在判断是微信平台时,必须使用window.location打开网页,使用其他方法在IOS版微信无法打开网页,至少现在的新版微信无法打开。对应的连接是请求获取code的链接。第2步会讲到。
判断客户平台body,td {
font-family: 微软雅黑;
font-size: 10pt;
}
window.onload = function(){
if(isWeiXin()){
window.location='http://www.xxoo.com/InterfaceAPI/code';
} else if(isZFB()){
alert('支付宝即将开放....');
//var p = document.getElementsByTagName('p');
//p[0].innerHTML = window.navigator.userAgent;
}else{
alert('请使用微信或者支付宝App扫码');
}
}
function isWeiXin(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i) == 'micromessenger'){
return true;
}else{
return false;
}
}
function isZFB(){
var ua = window.navigator.userAgent.toLowerCase();
if(ua.match(/AlipayClient/i) =='alipayclient'){
return true;
}else{
return false;
}
}
2.这里是获取code,回调地址必须使用URLEncoder的utf-8编码,这里最终