V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Level5
V2EX  ›  编程

有没有办法模拟微信客户端,发出请求拿到 code?

  •  
  •   Level5 · Jan 4, 2018 · 4849 views
    This topic created in 3035 days ago, the information mentioned may be changed or developed.

    RT

    pic1

    3 replies    2020-12-08 14:29:53 +08:00
    albertofwb
        1
    albertofwb  
       Jan 15, 2018 via Android
    这两天正好在做这个功能。首先你可以看看微信的开发文档,搞清楚了流程,就可以模拟浏览器访问微信提供的 url, 拦截 url 跳转就可以抓取到这个 CODE 了。我用 C#的 webview 做的,就几行代码
    Level5
        2
    Level5  
    OP
       Jan 15, 2018
    @albertofwb 我知道的流程如图所示,如果理解没错的话,用户被引导到请求 code 的链接这个步骤中,是微信内置的浏览器

    和微信服务器经过多次 HTTPS 握手交换才返回带 code 的链接重定向到商家页面.

    曾经尝试模拟微信内置浏览器到请求链接,改不改 agent 都被识别出来了,都返回

    ```
    <!DOCTYPE html>
    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
    </head>
    <body>
    <script type="text/javascript">
    var ua = navigator.userAgent.toLowerCase();
    var isWeixin = ua.indexOf('micromessenger') != -1;
    var isAndroid = ua.indexOf('android') != -1;
    var isIos = (ua.indexOf('iphone') != -1) || (ua.indexOf('ipad') != -1);
    if (!isWeixin) {
    document.head.innerHTML = '<title>抱歉,出错了</title><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><link rel="stylesheet" type="text/css" href="https://res.wx.qq.com/open/libs/weui/0.4.1/weui.css">';
    document.body.innerHTML = '<div class="weui_msg"><div class="weui_icon_area"><i class="weui_icon_info weui_icon_msg"></i></div><div class="weui_text_area"><h4 class="weui_msg_title">请在微信客户端打开链接</h4></div></div>';
    }
    </script>
    </body>
    </html>


    ```

    获取不了带 code 的重定向链接.
    weixingna
        3
    weixingna  
       Dec 8, 2020
    解决了吗兄弟
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1852 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:20 · PVG 00:20 · LAX 09:20 · JFK 12:20
    ♥ Do have faith in what you're doing.