收款啦
收款啦,是一款整合支付寶、微信、QQ收款碼的三合一系統。
採用 thinkPHP5.0 + MySQL + layui 開發完成
演示網站:收款啦
專案地址:GitHub
前言
無論是教學還是現成的程式碼,網路上幾乎隨處可見,為什麼我還要自己寫一套呢?
就是為了體現「套」字,包含上傳二維碼、識別二維碼、生成三合一收款碼,一整套流程服務。
絕大多數的三合一僅針對個人使用,而收款啦能為多用戶提供三合一服務。
但是它卻沒有後台,主要原因有兩個:
- 
無需頻繁查看或修改配置,一次配置,終身使用。
 - 
作者懶癌發作(也導致沒有安裝嚮導)
 - 
如果確實需要,之後再說
 
程式碼本身是比較輕量級的,由於使用了框架導致體積增大。
好吧,本身也沒什麼技術含量,自己也幾乎用不到,寫給有需要的人類吧,順便水水文~~逃(-
原理
收款碼三合一,聽起來感覺很神奇,其實原理非常簡單!
所謂二維碼,其實就是包含了一系列字串的圖片罷了。無論是支付寶還是微信的收款碼,其本質上是一個包含了收款連結的二維碼。所以我們的思路是:檢測如果是支付寶瀏覽頁面,就給出支付寶的付款連結;如果是微信,就給出微信連結……
然後這裡涉及到一個知識點,User-Agent,大廠的webview都會攜帶自家的UA資訊,比如說:
QQ:MQQBrowser/6.2 TBS/043221 Safari/537.36 QQ/7.0.0.3135
微信:MQQBrowser/6.2 TBS 043220 Safari/537.36 MicroMessenger/6.5.8.1060 NetType/4G Language/zh_CN
支付寶:UCBrowser/11.5.0.939 UCBS/2.10.1.6 Mobile Safari/537.36 AliApp(AP/10.0.15.051805) AlipayClient/10.0.15.051805 Language/zh-Hans
這樣就很輕鬆區分是QQ還是微信還是支付寶掃碼了:
User-Agent 含有 QQ/ 為QQ
User-Agent 含有 MicroMessenger 為微信
User-Agent 含有 AlipayClient 為支付寶
既然能夠區分每個軟體,那就可以透過自建一個網址,透過二維碼生成掃描這個網址後,判斷瀏覽器的UA,來分發不同的收款碼。
大致的流程則為:
客戶端掃碼 -> 伺服器端根據 User-Agent 判斷客戶端類型 -> 分別返回不同的處理
另外值得注意的是:
QQ:https 協定,無法喚醒QQ
支付寶:https 協定,可直接喚醒支付寶 APP
微信:微信自己的支付協定,無法喚醒微信
下載
安裝
- 
PHP >= 5.6 + MySQL
 - 
將應用程式部署到你的伺服器中
 - 
將
public子目錄設定為對外公開目錄 - 
將根目錄
pay.sql匯入你的資料庫中 - 
修改
application\database.php為自己的資料庫資訊 - 
設定網站偽靜態為
thinkPHP - 
修改根目錄中
config.php中的相關資訊 - 
輸入你的域名進行訪問(必須按步驟來)
 
需要在外網中才有效!需要在外網中才有效!需要在外網中才有效!重要的事情說三遍(內部區域網路應該也有效,但那還有什麼意義)

作者
© 阿珏,根據 GPL 許可證發布。
如果可以的話,請打賞作者一份 