微信公众号分享页面A分享出去,B点击了如何获取B的openid

wb54979 2017-12-22 04:05:03
wx.onMenuShareAppMessage({
title : param.title,
desc : param.desc,
link : "",
imgUrl : "",
success : function() {
// 用户确认分享后执行的回调函数
},
cancel : function() {
// 用户取消分享后执行的回调函数
}
});
调用微信的这个分享接口 把当前页面分享出去,当有人看到分享链接 并点击进入的时候 怎么获取点击人的openid 求解
...全文
4108 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
无·法 2018-10-17
  • 打赏
  • 举报
回复
用get方式,放到url参数里面,只能这样了。
LiuYuHnag 2018-10-17
  • 打赏
  • 举报
回复
window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="
+ appid
+ "&redirect_uri="
+ redirect_uri
+ "&response_type=code&scope="
+ scope
+ "&state="
+ worn_pid
+ "#wechat_redirect";
appid 你自己公众号的appid
redirect_uri 当前分享页面的绝对地址
scope 静默授权 snsapi_base
state 微信提供给用户传递参数的字段 worn_pid 分享人的openid

楼主你好 这些是写到微信里面么?
手中书 2018-09-28
  • 打赏
  • 举报
回复
这样IOS config 提示是ok ,可以分享进入的的这个页面,但假如我切换了页面,微信分享自定义的内容就失败了。老铁,可以看看你做的公众号吗
手中书 2018-09-28
  • 打赏
  • 举报
回复
应该不是这样的,config 配置时带参都是一样的。
1.我的分享出去的链接是这样的 http://dev.credit.home.ptteng.com/home?invitePeopleId=471&reload=reload
reload 表示 进入公众号需要吧当前url 地址替换成这样
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxbee9a9d169961a91&redirect_uri=http://dev.credit.home.ptteng.com/home?type=wx&response_type=code&scope=snsapi_userinfo&state=STATEvideogo&connect_redirect=1#wechat_redirect
所以安卓和IOS config 带参,每次都是一样的。微信追加到分享链接后面的from 和 isappinstled 参数也被替换掉了
wb54979 2018-09-28
  • 打赏
  • 举报
回复
你会发现 第一次没分享之前 进入页面 IOS 和安卓的 链接是基本相同的, 但是在第一次的页面 点击分享之后 安卓分享出去的链接 还能正常继续分享, 而IOS 就不行了, 在相应的 JS 增加alert 打印参数 或者 把分享不同类型手机上 分享出去的链接 复制发到QQ上能显示 正常的链接 你会发现 IOS 和安卓的 不同, 所以在 第一次分享出去的页面的 在被别人 二次打开 继续分享的时候, 初始化微信的 config 带进去的参数是不一样的, IOS 的可能是 导致了 初始化失败, 所以默认调用的 成了微信自带的了。
手中书 2018-09-27
  • 打赏
  • 举报
回复
你好,请问一下你们分享出去的链接,点击链接进入还能再分享自定义内容么
wb54979 2018-09-27
  • 打赏
  • 举报
回复
比如你现在的页面 路径是 http://baidu.com/wx/aa.html 然后你分享出去的比如是 http://baidu.com/wx/aa.html ?youopenid=dsadas&tk=fx 然后是一系列的后台授权 然后返回参数前台调用微信分享, 然后你js需要控制 每次在打开http://baidu.com/wx/aa.html 这个地址的时候 你获得一下路径参数 是不是包含了 你分享的参数如果包含了 说明是 分享出去的连接。
这个时候 你调用 静默授权 或者不静默授权 静默授权无需用户点击同意直接进去 不静默授权需要用户点击同意才进去,, 静默授权 直接用js 控制 window.loca="" 我上面的描述的链接 记得带上你youopenid 整体过程就是 不是分享页面 其实打开的是一次页面正常流程。
如果是分享页面 第一次点击进去是获取 你自己带在路径的自己的openid 然后瞬间 调用静默授权 在打开一次页面 把自己的openid组装进去。 因为静默授权 是可以获取到 点击人的code 的 然后根据code就可以获取 点击人的openid了。 也就是说 获取code 必须是在分享出去的页面里面获取, 并且是在静默授权之后的页面里面获取
手中书 2018-09-27
  • 打赏
  • 举报
回复
我现在分享出去的链接是 ,域名再加一个标识符,如果点击分享链接进入,在页面判断有没有标识符,有就重新加载页面,并替换带微信授权的URL就像这样,window.location.href = wxurl + 'appid=' + appid + '&redirect_uri=' + url + '&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect';,但是这样做,在IOS 上面就不能再次分享自定义的内容了。
  • 打赏
  • 举报
回复
有个小疑惑大佬能方便解答一下么?link分享的地址必须是当前页面的地址。你这个是指我分享的时候地址是当前页面的地址。然后别人点击进来的时候我发送一次你上面的请求,再去获取code么?
wb54979 2018-09-20
  • 打赏
  • 举报
回复
window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="
+ appid
+ "&redirect_uri="
+ redirect_uri
+ "&response_type=code&scope="
+ scope
+ "&state="
+ worn_pid
+ "#wechat_redirect";
appid 你自己公众号的appid
redirect_uri 当前分享页面的绝对地址
scope 静默授权 snsapi_base
state 微信提供给用户传递参数的字段 worn_pid 分享人的openid

当点击分享页面的人 一点击 这些 带着的参数 你是完全可以获取到的, 然后这个链接是 静默授权的 然后
你通过js 的方法获取 getParam("code") 不就获取到 点击人的code 然后ajax 你后续流程就OK了

wb54979 2018-09-20
  • 打赏
  • 举报
回复
我给你说一下过程吧,你自己去实现挺简单的, 首先A分享的时候 比如你按照微信的规则, 你分享的是 http;//www.aa.com/page/share.html?openid=分享人的openid. 这个页面必须在你的项目里面是存在的,然后当别人打开这个页面的或者你自己打开这个页面的时候 是不是完全可以 获取到openid=分享人的openid 这是第一步得到你自己的openid, 第二步 在页面js里面判断处理,看当前页面是不是属于 分享出去的页面 是不是分享出去的页面 你肯定是知道的因为规则是由你定的,如果是分享页面 开启静默授权 也就是不需要别人同意的前提下 拿到用户的code 然后你在根据这个code ajax去你后台调用微信 提供的接口 获取openid 返回页面 , 静默授权说白了 就是按照微信 规则 传入对应的参数 window.href 重新把当前页面打开一遍 只是这个过程很快用户发现不了, 但是在重新打开页面的时候 你需要再次 传入 分享人的openid 和 点击人的code 这样 不就 A的openid B的openid都有了吗
wb54979 2018-09-20
  • 打赏
  • 举报
回复
不是。 这个你可以根据你自己的 业务需求啊 比如你 整一个 特殊字段 微信不会有的 只是你们特定的, 只有分享的时候 才带着 然后页面每次 打开的时候 取这个字段 有存在的话 就做静默授权 重新打开页面。 没有就不管 正常流程
qq_29586133 2018-09-20
  • 打赏
  • 举报
回复
判断是不是分享出去的页面 是根据URL后面是否跟了openid 吗? 我方便加一下你微信吗?
qq_29586133 2018-09-19
  • 打赏
  • 举报
回复
你好 请问有实例吗?还是获取到B的openid 就获取不到A的了?
wb54979 2018-09-10
  • 打赏
  • 举报
回复
可以,只要他点击。分分钟能拿到
qq_37364760 2018-09-07
  • 打赏
  • 举报
回复
引用 8 楼 wangbo54979 的回复:
首先 你A 分享页面出去的时候 参数带着你自己的openid, 然后分享出去的页面 在JS里面做 判断 如果是分享出去的 当页面打开的时候做静默授权 这个时候 你就能拿到他的code 也就是B的 然后再根据 code获取 他的openid不就行了, 这不就实现了 分享人 以及点击人的 openID都能获取了

B不是公众号的关注者,也能获取openId吗?
wb54979 2018-07-24
  • 打赏
  • 举报
回复
首先 你A 分享页面出去的时候 参数带着你自己的openid, 然后分享出去的页面 在JS里面做 判断 如果是分享出去的 当页面打开的时候做静默授权 这个时候 你就能拿到他的code 也就是B的 然后再根据 code获取 他的openid不就行了, 这不就实现了 分享人 以及点击人的 openID都能获取了
m0_37992412 2018-07-23
  • 打赏
  • 举报
回复
不太理解啊,怎么确定B是通过A的链接点击进来的呢
无·法 2018-07-23
  • 打赏
  • 举报
回复
必须要通过https://open.weixin.qq.com/connect/oauth2/authorize才能获取到code,这样就必须跳转可经过一次这个页面才行。

例如:http://sao315.com/w/api/getopenid?redirect_uri=http://www.jiujiujin.net/testlogin.htm
你访问的时候他就跳转了一次性到open.weixin.qq.com,不然它是无法取得code的。
wb54979 2018-05-21
  • 打赏
  • 举报
回复
静默授权。 页面加验证当页面是 分享出去的时候,执行静默授权 也就是window. 重新打开当前页面 就能获取code了 也就能获取点击人的openid了
加载更多回复(2)

61,110

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧