zoukankan      html  css  js  c++  java
  • 支付宝、微信支付用同一二维码支付

      中午去吃饭的时候,发现一家店里只有一个支付二维码,支付宝和微信扫一扫之后都能支付 Oops!和同事讨论了一下,回头自己又做了测试。其实原理很简单。

      首先二维码是一个URL地址。无论是支付宝还是微信扫码后,都直接请求这个URL地址,在这个URL里根据HTTP请求头判断是扫码的是支付宝还是微信。如果是支付宝,就调用支付宝流程,如果是微信,就调用微信支付流程。

    1     $userAgent = $_SERVER['HTTP_USER_AGENT'];
    2     $userAgent = strtolower($userAgent);
    3     if(strpos($userAgent, 'micromessenger') !== false){
    4         //微信支付逻辑
    5         echo "weixin";
    6     }
    7     if(strpos($userAgent, 'alipayclient') !== false){
    8         //支付宝支付逻辑
    9     }

    微信浏览器请求和支付宝请求的区别

    微信浏览器请求头userAgent

    Mozilla/5.0 (Linux; Android 5.1.1; 2014813 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/37.0.0.0 Mobile MQQBrowser/6.2 TBS/88888888 Safari/537.36 MicroMessenger/6.5.4.1000 NetType/WIFI Language/zh_CN

    支付宝请求头userAgent

    Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; 2014813 Build/LMY47V) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/1.0.0.100 U3/0.8.0 Mobile Safari/534.30 Nebula AlipayDefined(nt:WIFI,ws:360|640|2.0) AliApp(AP/10.0.2.012305) AlipayClient/10.0.2.012305 Language/zh-Hans useStatusBar/true
  • 相关阅读:
    程序员书单
    36条极简人生建议
    Nacos
    jvm详解
    22种世界500强都在用的高效工作方法,你了解几种?
    道德经39经典
    积累的力量
    JUC之线程间定制化通信
    JVM调优参考
    docker开机启动和dockercompose开机启动执行相应的各个docker容器
  • 原文地址:https://www.cnblogs.com/lhat/p/6404174.html
Copyright © 2011-2022 走看看