H5 一碼付(微信和支付寶)


這段時間公司要做一個一碼付,在網上查了一些資料以及官方文檔才把這個做出來,如果有問題歡迎在下面留言。
一、微信
在微信付款之前咱們要做一個操作就是微信授權。只有在微信授權之后我們才能清楚的知道我們付款方是誰!(因為誰也不想稀里糊塗的就給對方付款吧)
1.1  微信授權
我們在做微信授權的時候要先在微信后台配置好所需要的參數,其實也就是在功能設置里把網頁授權地址寫上,不然會出現
這種錯誤,看到這種錯誤的時候不要慌,先去看看網頁授權域名和你輸入的地址的域名是不是一個?如果不是就快改過來
根據這個地址你可以拿到code值:
https://open.weixin.qq.com.connect/oauth2/authorize?appid=你的APPID&redirect_uri=你在后台配置的回調地址&response_type=code&scope=snsapi_userinfo&state=1342#wechat_redirect
如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。(注:如果code在5分鍾之內未被使用,則會過期,每個人每次登錄時這個code都會變化)
如果scope=snsapi_userinfo的話,則會出現下面的界面,必須讓用戶手動確認才能授權:
 
如果scope=snsapi_base的話,則不會出現上面的頁面,會在用戶未發覺的情況下默認授權。
把獲取到的code值傳給后台人員,后台的同事會去請求微信方,然后把你需要的參數傳給你。
我一並把微信開發者文檔的參考地址拿出來,如果有不清楚的歡迎下方留言。
 
1.2  微信支付
在微信授權的時候已經說過把code傳給后台的同事之后,后台的同事會幫你拿到你想要的參數,那么你現在可以直接調用微信的支付接口:
這里面除了支付簽名以外,其余的可以在本地獲取,分別是你的APPId、時間戳、隨機字符串、以及需要的JS列表接口。
下面開始調用這個支付接口:
 
二、支付寶支付
2.1  支付寶授權
function zhifuLoad(){
window.location.href='https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=你的appid&redirect_uri=回調地址&scope=auth_base';
}
然后根據這個接口把獲取的appCode傳給后台,讓后台的同事幫你查詢用戶並存到數據庫中。
如果scope=auth_userinfo的話,則會出現下面的界面,必須讓用戶手動確認才能授權:
如果是scope=auth_base則是靜默授權,不會出現用戶點擊就可以授權;
如果是靜默授權只能拿到用戶的openId,以及一些姓名一類的;如果需要的參數多,則可以用scope=auth_userinfo這種授權,拿到的參數會更為齊全點;
2.2  下單接口
把拿到的訂單號傳給支付寶,然后就可以很輕松的調起支付寶的鍵盤進行支付了:
2.3  成功調起的快捷支付界面:
如果訂單號是正確的,則會彈出以下界面:
否則的話就要檢查一下傳給支付包的訂單號有沒有傳對;
三、辨別微信掃描還是支付寶掃描
想要判斷是微信支付還是支付寶支付,我們首先要了解微信和支付包的UserAgent是什么?
UserAgent:它的中文名是用戶代理,是一個特殊字符串頭,使得服務器能夠識別客戶使用的操作系統及版本、CPU類型、瀏覽器及版本等;
那么我們現在就可以很輕松的判斷出掃描的是微信還是支付寶了;
如果有MicroMessenger為微信,如果有ApliPayClient是支付寶
代碼如下:
function Judge(){
var agent=window.navigator.userAgent.toLowerCase();
//判斷是否為微信
if( agent.match(/MicroMessenger/i) == 'micromessenger' ){
alert("微信");
return;
}
if( agent.match(/AlipayClient/i) == 'alipayclient' ){
alert("支付寶");
return;
}
}
 
function Judge(){
var ua = window.navigator.userAgent.toLowerCase(); 
//判斷是否為微信
if ( ua.match(/MicroMessenger/i) == 'micromessenger' ) 
{ return "WeiXIN"; 
//判斷是否為支付寶
if (ua.match(/AlipayClient/i) == 'alipayclient') { 
return "Alipay"; 
}
四、生成二維碼
4.1 如果要生成二維碼,就需要你引入一個第三方庫,以下鏈接可直接引入:
4.2  按照以下格式先把你要的樣式,大小寫好:
 
4.3再把你要的鏈接放進去,生成二維碼:
這樣就可以生成你想要的二維碼了,最后生成出來的二維碼:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM