917捕鱼旧捕鱼达人2老版本下载载

开发者必读
开发者工具
获取接口调用凭据
消息加解密
自定义菜单管理
数据统计接口
微信JS-SDK
微信小店接口
微信卡券接口
微信门店接口
微信智能接口
设备功能介绍
多客服功能
摇一摇周边
微信连Wi-Fi
出自微信公众平台开发者文档
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
关于网页授权回调域名的说明
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心页配置授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:,配置以后此域名下面的页面 、
都可以进行OAuth2.0鉴权。但 、
3、如果公众号登录授权给了第三方开发者来进行管理,则不必做任何设置,由第三方代替公众号实现网页授权即可
关于网页授权的两种scope的区别说明
1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
关于网页授权access_token和普通access_token的区别
1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;
2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。
关于UnionID机制
1、请注意,网页授权获取用户基本信息也遵循UnionID机制。即如果开发者有在多个公众号,或在公众号、移动应用之间统一用户帐号的需求,需要前往微信开放平台(open.)绑定公众号后,才可利用UnionID机制来满足上述需求。
2、UnionID机制的作用说明:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。
关于特殊场景下的静默授权
1、上面已经提到,对于以snsapi_base为scope的网页授权,就静默授权的,用户无感知;
2、对于已关注公众号的用户,如果用户从公众号的会话或者自定义菜单进入本公众号的网页授权页,即使是scope为snsapi_userinfo,也是静默授权,用户无感知。
具体而言,网页授权流程分为四步:
1、引导用户进入授权页面同意授权,获取code
2、通过code换取网页授权access_token(与基础支持中的access_token不同)
3、如果需要,开发者可以刷新网页授权access_token,避免过期
4、通过网页授权access_token和openid获取用户基本信息(支持UnionID机制)
在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后,默认拥有scope参数中的snsapi_base和snsapi_userinfo),引导关注者打开如下页面:
若提示“该链接无法访问”,请检查参数是否填写错误,是否拥有scope参数对应的授权作用域权限。
尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问
参考链接(请在微信客户端中打开此链接体验)
Scope为snsapi_base
https%3A%2F%%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_4_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect
Scope为snsapi_userinfo
尤其注意:跳转回调redirect_uri,应当使用https链接来确保授权code的安全性。
公众号的唯一标识
redirect_uri
授权后重定向的回调链接地址,请使用urlencode对链接进行处理
response_type
返回类型,请填写code
应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
#wechat_redirect
无论直接打开还是做页面302重定向时候,必须带此参数
下图为scope等于snsapi_userinfo时的授权页面:
用户同意授权后
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数redirect_uri?state=STATE
code说明 :
code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
首先请注意,这里通过code换取的是一个特殊的网页授权access_token,与基础支持中的access_token(该access_token用于调用其他接口)不同。公众号可通过下述接口来获取网页授权access_token。如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,snsapi_base式的网页授权流程即到此为止。
尤其注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器,不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤,也必须从服务器发起。
获取code后,请求以下链接获取access_token:
公众号的唯一标识
公众号的appsecret
填写第一步获取的code参数
grant_type
填写为authorization_code
正确时返回的JSON数据包如下:
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
access_token
网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
expires_in
access_token接口调用凭证超时时间,单位(秒)
refresh_token
用户刷新access_token
用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID
用户授权的作用域,使用逗号(,)分隔
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:
错误时微信会返回JSON数据包如下(示例为Code无效错误):
{"errcode":40029,"errmsg":"invalid code"}
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token拥有较长的有效期(7天、30天、60天、90天),当refresh_token失效的后,需要用户重新授权。
获取第二步的refresh_token后,请求以下链接获取access_token:
公众号的唯一标识
grant_type
填写为refresh_token
refresh_token
填写通过access_token获取到的refresh_token参数
正确时返回的JSON数据包如下:
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
access_token
网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
expires_in
access_token接口调用凭证超时时间,单位(秒)
refresh_token
用户刷新access_token
用户唯一标识
用户授权的作用域,使用逗号(,)分隔
错误时微信会返回JSON数据包如下(示例为Code无效错误):
{"errcode":40029,"errmsg":"invalid code"}
如果网页授权作用域为snsapi_userinfo,则此时开发者可以通过access_token和openid拉取用户信息了。
http:GET(请使用https协议)
access_token
网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
用户的唯一标识
返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语
正确时返回的JSON数据包如下:
"openid":" OPENID",
" nickname": NICKNAME,
"sex":"1",
"province":"PROVINCE"
"city":"CITY",
"country":"COUNTRY",
"headimgurl":
"privilege":[
"PRIVILEGE1"
"PRIVILEGE2"
"unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
用户的唯一标识
用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
用户个人资料填写的省份
普通用户个人资料填写的城市
国家,如中国为CN
headimgurl
用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。
用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:
错误时微信会返回JSON数据包如下(示例为openid无效):
{"errcode":40003,"errmsg":" invalid openid "}
http:GET(请使用https协议)
access_token
网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
用户的唯一标识
正确的Json返回结果:
{ "errcode":0,"errmsg":"ok"}
错误时的Json返回示例:
{ "errcode":40003,"errmsg":"invalid openid"}微信客户端授权登录开始邀请第三方应用内测了,我们虽然是个创业团队,但很幸运的成为了该功能的早期内测用户,经过半年多的试用,积累了不少的经验和教训,分享出来,希望对大家有所帮助。 微信授权登录的优势有哪些?1. 数亿微信用户直接登录, 免去繁琐注册流程。2. 支持获取用户基本信息,免去用户填写个人资料的烦恼,并且内容真实可靠。 一个iOS应用使用微信授权登录的过程应该是怎样的?申请微信授权登录&微信sdk接入&多应用账号打通&提交AppStore审核&上线 为什么提交AppStore审核也列入了这个过程?因为这里坑最多,我们一开始缺乏经验,足足在这步浪费了差不多两个月的宝贵时间! 下面,我们就按照这个过程,逐一进行介绍。 第一步:申请微信授权登录 微信授权登录的申请条件?只要应用已经获得了微信支付的权限,就可以提交申请。 具体怎么申请,官方有很详细的介绍,这也不是本文的重点,所以就直接略过了。附上微信开放平台的地址:https://open./ 在这里要重点指出的是:1. 客户端的授权登录是在微信开放平台申请的。2. web端的授权登录除了要在微信开放平台申请外,还要申请微信公众平台的服务号并完成认证,获取高级接口的访问权限。修正:微信的伙伴们反馈了最新的进展,web端的授权登录现在可以不用公众号了。 第二步:微信sdk接入 如果你的申请被通过,会得到一个包含有微信授权登录的SDK包,这个包同时也包含了基础的分享功能。具体的接入方法,微信会在SDK包中提供详细的说明文档,按照文档进行接入即可。 在这里要重点指出的是:1. 授权成功后返回的OpenID仅仅是应用内唯一标识,同一用户在不同应用进行授权,返回的OpenID是不一样的!2. 即使是同一个应用,同一个用户在移动应用授权登录和在web应用授权登录,返回的OpenID也是不一样的! OpenID都不一样,那我的产品是一系列应用,想统一账号怎么办?别急,继续往下看,微信已经提供了解决方案的。 第三步:多应用打账号打通 如果你们的产品是一个系列应用,又或者同时有移动应用和web应用,那么按照微信的规定,每个应用都必须在开放平台进行登记和审核(需要绑定包名,所以不能多个应用使用同一个签名),这也就意味着这些应用每个都是独立的应用!前面说过,这样会导致这一系列应用当用户授权后,返回的OpenID都不一样,无法唯一标识用户!这时就需要使用UnionID机制来解决这个问题。 UnionID使用规则如下:1. 同一个授权用户,在同一个开放平台账号下的应用中进行授权,返回的UnionID是相同的。2. 同一个授权用户,在绑定到同一个开放平台账号下的公众账号进行授权,返回的UnionID是相同的。这下多应用账户打通的问题就彻底的解决了吧! 第四步:提交AppStore审核 本来不该写这个环节的,因为这个环节貌似跟微信授权登录没什么关系,但其实这里才是本文最最最重要的地方,这里真的是坑多且深啊,我们足足在这里耗了两个月左右... 当我们[第一次]满心欢喜的以国内少数几个(现在我怀疑就是第一个!)仅支持微信授权登录应用的姿态,把应用提交到AppStore审核两周后,得到了我们的第一个拒绝通过的审核理由:你们的微信登录按钮点了没反应! 微信登录按钮为什么会没反应?我们可是经过了充分的测试了呀!特别是微信授权登录流程,更是测的不能更细致了!最后我们发现,这个登录按钮如果想没反应,那一定要做一件事情:卸载微信!好吧,是我们的问题,作为一个创业团队,没有配专职的测试人员,测试经验不足,遗漏了这一步,让苹果大神您测出来了,我们认了! 我们立刻为微信登录按钮添加了微信是否安装的检测,如果检测到微信没有安装,那我们就弹出对一个提示框,提示用户要去下载微信,而且提示框还提供了直接跳到AppStore下载微信的按钮,我们甚至还贴心的添加了英文版的提示框(因为AppStore拒绝我们通过的理由中的截图是英文版的系统)。 这下我们信心满满的[第二次]向AppStore提交审核,差不多两周后得到了我们的第二个拒绝通过的审核理由:你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。 我们郁闷,我们不服,我们去申诉:我们使用微信授权登录是为了提供更好的,是为了避免用户输入个人资料的繁琐过程呀! 申诉结果在五天后反馈到了我们:我们仔细阅读了你们的申诉内容,但是还是认为你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。 好吧,我们屈服了,我们作为一个创业团队,无法让微信授权登录的sdk在未安装微信的时候,可以跳转到web页面进行授权,我们只好用了两天时间开发了基于手机号和验证码的注册登录系统,开始[第三次]向AppStroe提交审核。这次的审核用了一周多的时间,审核的速度是快起来了,可是还是悲剧了!理由甚至都没变:你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。 这次我们彻底愤怒了,增加了那么明显的手机号验证码授权登录界面啊,审核大哥你不可能没看到啊,居然还用同样的理由拒绝我们,太过分了吧!这次我们使用了更为强烈的措辞进行了申诉,申诉结果在提交后的第四天得到了反馈:我们注意到了你们已经提供了自己的用户授权认证系统,但是你们使用的微信授权登录设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。 当时我们都无语了,审核大哥你要不要做的这么绝啊!我们当时甚至萌生了要不索性把微信授权登录去掉,换成微博授权登录念头!最终,我们决定做最后一次尝试,就是应用在登录的时候,主动检测微信是否有安装,如果没有安装的话,直接把微信的授权登录按钮隐藏掉,只保留我们自己的注册登录功能!这是我们[第四次]向AppStore提交审核,心里剩下的只有忐忑......六天后,审核通过了!审核终于通过了!喜极而泣啊! 回想整个应用提交AppStore审核过程,耗时近乎两个月,从世界杯前硬生生被拖到世界杯彻底结束,我们的应用是个专注宵夜应用啊,世界杯过了,我们的推广难了n倍啊!希望大家看了我们的经历,能够吸取教训,不要重蹈我们的覆辙! 以上就是我们应用使用微信授权登录提交AppStore审核的过程。
24小时报不停
李在镕连续两天接受独检组调查,仍否认行贿指控
SpaceX最后一刻叫停火箭发射,推迟一天向空间站运送补给
北京交管部门紧急叫停共享电动单车
苹果与博通合作开发无线充电芯片,用于未来iPhone
资金耗尽,融资1.5亿美元的二手汽车交易平台Beepi倒闭了
因A轮融资不利,估值5亿的光圈直播平台倒闭
传苹果将在印度开始组装iPhone SE,数量约三四十万部
高鑫零售公告打脸总裁,称大润发求购者无阿里腾讯
YouTube将于2018年停止播放30秒强制广告
国内市场业绩不佳,TCL通讯中国区总裁杨柘被免职
张朝阳预计搜狐视频2019年盈利,准备坚定向收费平台转型
索尼受累影视业务业绩下滑83.7%,押宝游戏产业存隐忧
阿里影业预计2016年将亏损9.5亿-10亿元,因大力投入淘票票
三星领导人李在镕被捕,二号人物崔志成或临危受命
小米晋升印度主管为全球副总裁,接替雨果【第三方】微信授权登录
【第三方】微信授权登录
在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。我是从产品那里得到的,所以就不写这个步骤了。。。
1、下载SDK
2、将SDK放入工程
将SDK放入工程
我选择的无模拟器版,即“WeChatSDK_1.5_OnlyIphone”,这大约可以省一半的体积(OnlyPhone体积2.2M,兼容模拟器的体积4.2M)
3、观察微信API
通过我的观察,微信API大概可以分为两部分,一部分是第三方APP发送信息(文本,图片,音频,链接等等)到微信的会话、朋友圈或者收藏,还有就是微信授权登录(API中多以Resp,response作结尾),这是我常用的;另一部分是微信发送信息给第三方APP,这一部分没尝试过(API中多以Req,request作结尾)。
4、补充一些框架
添加一些框架
我在使用SDK时需要添加libc++.dylib ,否则编译报错,可是官方文档并没有提示,不知为何。
5、添加URL scheme
添加URL TYPE
Identifier中填写自定义的文本。
6、向微信终端程序注册第三方应用,并在第三方应用实现从微信返回
在AppDelegate.m中引入"WXApi.h"头文件,然后
向微信终端程序注册第三方应用,并在第三方应用实现从微信返回
7、请求CODE
在要微信授权登录的controller中引入"WXApi.h"头文件,编写请求code的代码,如下图:
执行该方法后,如果客户端安装了微信,那么就会向微信请求相应的授权,如图:
向微信请求相应的授权
当然,实际使用中,还要结合需求做一些变化。因为授权后,诸如token之类的字段,是有有效期的,在有效期范围内,我们是没必要让用户再次授权的,所以,很可能你的实现,会如我下面所写的:
请求Code会结合需求扩展变化
相关情况,参见
让AppDelegate遵守&WXApiDelegate&协议,并实现协议方法onResp:,我们在该方法中接收请求回来的数据,如下图:
实现onResp:方法,接收返回的响应
参数说明:
应用唯一标识,在微信开放平台提交应用审核通过后获得
应用授权作用域,如获取用户个人信息则填写snsapi_userinfo()
用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
返回说明:
用户点击授权后,微信客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方。
ERR_OK = 0(用户同意),ERR_AUTH_DENIED = -4(用户拒绝授权),ERR_USER_CANCEL = -2(用户取消)
用户换取access_token的code,仅在ErrCode为0时有效
第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传,state字符串长度不能超过1K
微信客户端当前语言
微信用户当前国家信息
8、通过code获取access_token
获取第一步的code后,请求以下链接获取access_token:
https://api./sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
相关代码参见图片实现onResp:方法,接收返回的响应图。
参数说明:
应用唯一标识,在微信开放平台提交应用审核通过后获得
应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
填写第一步获取的code参数
grant_type
填authorization_code
返回说明:
正确的返回:
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE",
"unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"
access_token
接口调用凭证
expires_in
access_token接口调用凭证超时时间,单位(秒)
refresh_token
用户刷新access_token
授权用户唯一标识
用户授权的作用域,使用逗号(,)分隔
只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段
错误返回样例:
{"errcode":40029,"errmsg":"invalid code"}
9、获取用户个人信息(UnionID机制)
获取用户个人信息
最后,你应该还会有上传用户响应标识到公司后台的需求,这具体的实现就要靠自己的实现了。
有的同学可能已经发现,一个微信授权需要涉及两个大类,一个登录的controller,一个是AppDelegate,这两个类之间通信,需要代理或者其他设计模式来支持.
大致流程就是这样,如有错误或不足,欢迎斧正。
自称刘大帅,iOS开发者。我们已累计为&12,375,727个网站&提供服务
服务热线:
如何绑定微信公众帐号(微信授权)
如何(授权)绑定微信公众帐号具体操作:1、在微信公众平台注册公众帐号:2、在凡科网站后台登陆
进入--手机版网站--微信设置--点击“登陆授权第三方平台”3、跳转到微信公众账号平台--输入微信公众账号和密码-点击--“登陆并授权”--管理员扫码--确认确认授权 &出现上面“授权成功,请自行关闭此页”的提示后,就可以关闭授权页面,完成授权登录手机版的微信平台去设置相应的自动回复等信息-------------------------------------------------------------------------------如何取消授权:如果想微信公众号不要授权绑定凡科网站(想要另外绑定其他的平台)可以到微信公众平台去设置取消授权 取消授权方法如下:登录---添加功能插件---授权管理---查看平台详情---取消授权 &即可取消授权
&&&相关文章:
&&&最新文章:
本文地址:

我要回帖

更多关于 捕鱼达人2老版本下载 的文章

 

随机推荐