需求:微信,支付宝,龙支付的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