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

2018-01-04 12:30:22 +08:00
 Level5

RT

4281 次点击
所在节点    编程
3 条回复
albertofwb
2018-01-15 15:32:29 +08:00
这两天正好在做这个功能。首先你可以看看微信的开发文档,搞清楚了流程,就可以模拟浏览器访问微信提供的 url, 拦截 url 跳转就可以抓取到这个 CODE 了。我用 C#的 webview 做的,就几行代码
Level5
2018-01-15 16:11:45 +08:00
@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
2020-12-08 14:29:53 +08:00
解决了吗兄弟

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/419964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX