通過lua指令碼識別微信,支付寶,龍支付
阿新 • • 發佈:2019-02-14
需求:微信,支付寶,龍支付的APP中的掃一掃掃描二維碼,根據不同的瀏覽器,調起不同的支付。這裡要通過lua指令碼識別掃碼之後支付型別。
lua指令碼判斷支付型別,要知道各種支付的標誌性欄位,比如微信,js可以獲取請求的使用者代理頭,包含”MicroMessenger”欄位,可以判斷是微信中的掃一掃,進行掃描的。如果是支付寶==>Alipay,建行龍支付==>CCBWebView(當然這裡建行的js判斷不出來的,因為他用了post請求)。
lua指令碼示例:
local user_agent_ccb = ""
local user_agent_wx = ""
local user_agent_zfb = ""
--使用者使用掃一掃後,首先跳轉到此指令碼中,先獲取到請求頭資訊,判斷支付型別,然後重定向到html介面,調起支付
--獲取請求頭資訊
local headers = ngx.req.get_headers()
log(m_uuid,"request headers=="..cjson.encode(headers))
--遍歷請求頭中的欄位
for k, v in pairs(headers) do
log(m_uuid,v)
local findstr_ccb = string.match(v,"CCBWebView")--建行龍支付
local findStr_wx = string .match(v,"MicroMessenger")--微信支付
local findStr_zfb = string.match(v,"Alipay")--支付寶支付
--根據不同的支付方式,把標誌性欄位傳遞給html中,由html中處理相應的業務邏輯
end