微信登陆总结及遇到的问题

入行IOS开发第一个任务就是做微信登陆。调用微信的SDK接口,遇到一些小细节问题。这里就总结一下吧。

  

SDK的导入的方式具体可看微信官方文档

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417694084&token=&lang=zh_CN

SDK接口具体说明

https://open.weixin.qq.com/cgi-bin/showdocument?action=doc&id=open1419317851&t=0.9033173893112689#scope

下面是代码

第一步:请求CODE

-(void)sendAuthRequest
{
     //我这里使用UUID来做state内容
     self.requestState = [NSUUID UUID].UUIDString;

   //构造SendAuthReq结构体
    SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
    req.scope = @"snsapi_userinfo" ;
    req.state = self.requestState ;
    //第三方向微信终端发送一个SendAuthReq消息结构
    [WXApi sendReq:req];
}
参数说明
参数 是否必须 说明
appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
scope 应用授权作用域,如获取用户个人信息则填写snsapi_userinfo(什么是授权域?
state 用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验
第二步:通过code获取access_token

获取第一步的code后,请求以下链接获取access_token:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明
参数 是否必须 说明
appid 应用唯一标识,在微信开放平台提交应用审核通过后获得
secret 应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
code 填写第一步获取的code参数
grant_type 填authorization_code
第三步:通过access_token调用接口

获取access_token后,进行接口调用,有以下前提:

  1. 1. access_token有效且未超时;
  2. 2. 微信用户已授权给第三方应用帐号相应接口作用域(scope)
时间: 2024-11-05 17:32:41

微信登陆总结及遇到的问题的相关文章

Android调用微信登陆、分享、支付

前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也有个找资料的地方. 一.微信登陆分三个步骤: 1).微信授权登陆  2).根据授权登陆code 获取该用户token  3).根据token获取用户资料  4).接收微信的请求及返回值 如果你的程序需要接收微信发送的请求,或者接收发送到微信请求的响应结果,需要下面3步操作: a. 在你的包名相应目录

微信登陆,微信SDK授权登陆经验分享

From:http://www.eoeandroid.com/thread-547012-1-1.html 最近因为项目需要做了微信登陆,好像也是微信最近才放出来的接口.还需要申请才能有权限实现授权.其实也比较简单,跟新浪微博和qq授权登陆差不多.不过还是有点差别,不知道是微信sdk本身就没有完善还是其他问题.会有一点蛋疼的地方,下面会细说.(由于等级不够,不能发在经验分享区,只能先写在这里了.希望对要做微信登陆的朋友有帮助,如果有不对的地方还希望大家直言不讳)<ignore_js_op> 首

Discuz无法通过微信登陆

由于discuz更新到了x3.2,最近很多使用discuz的用户反映,在论坛网站上安装了微信这个插件后,却无法登陆,绑定微信号和无法通过扫面登陆微社区等现象. 很多原因要么是因为用户自己没有认证服务号的却选择了认证服务号项,要么就是有认证服务号的却选择了未认证服务号的选项.基本都是操作上的失误导致. 解决方法很简单: 如果你没有安装微信插件,请你先安装. 首先登陆网站后台——开通微社区——应用——微信登陆——微信设置: 注意在公众号类型设置这里,如果你是没有认证服务号的,请一定选择“无公众号/订

android app 微信登陆

目前第三方登陆app需求很多了.在这里做一下微信app的登陆.直说其中几个功能点. https://open.weixin.qq.com,首先去微信官网去注册app,然后下载demo.获取libammsdk.jar. 在进行第三方登陆的页面进行如下的初始化: // Constants.APP_ID 是在官网注册app时,官网分配的appid api = WXAPIFactory.createWXAPI(this, Constants.APP_ID, true); api.registerApp(

Android开发中微信登陆

关于android开发中的微信登陆,除了使用shareSDK,我们使用腾讯开发者平台上提供的SDK,按照官网步骤实现第三方登陆的功能. 微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权.该模式整体流程为: 1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过API换取access_tok

UnionID和微信登陆

微信同时开放微信登陆功能的内测和UnionID机制,很多人还不知具体情况,我解释下: 微信登陆功能,拥有微信支付权限的移动应用(App和游戏)和网站,可以申请微信登陆权限.这在我们玩微信游戏时就可以体验到微信登陆功能,在此之前微信登陆功能只开放给"国家队",从现在开始也会逐渐开放给其他第三方移动应用和网站. UnionID机制,官方的解释是: "通过获取用户基本信息接口,开发者可通过OpenID来获取用户基本信息,而如果开发者拥有多个公众号,可使用以下办法通过UnionID机

微信公众账号开发之微信登陆Oauth授权-第一篇

我曾经在2012年的时候开始研究微信,那时微信的版本还是处于1.0,当时给朋友帮忙做一个基于微信端的web应用,官方的文档是相当少的,百度搜索出来的东西基本也没有多少实用价值,不过是在官网的基础上作了很少一些改动,就傲骄的发上去说是原创.目前的微信文档已经完善了很多,不过就我个人而言,仍过于有些宽泛,应该详细的地方未做补充,甚至是官方的SDK都有问题(其中有一个微信支付模块下的单词拼错了),给开发者带来不少困扰. 趁着现在手上的事情不多,我打算做一期微信的开发专栏,把每个步骤都尽可能的记录下来,

微信登陆问题{&quot;errcode&quot;:40029,&quot;errmsg&quot;:&quot;invalid code, hints: [ req_id: xxxx]&quot;}

微信登陆重新申请 由于在发起https://open.weixin.qq.com/connect/qrconnect请求时忘了把旧的appid改成新的,照成在请求https://api.weixin.qq.com/sns/oauth2/access_token(这个请求有更改新的appid和secret)时无法获取access_token.微信返回{"errcode":40029,"errmsg":"invalid code, hints: [ req_i

Discuz无法通过微信登陆怎么处理?

由于discuz更新到了x3.2,最近很多使用discuz的用户反映,在论坛网站上安装了微信这个插件后,却无法登陆,绑定微信号和无法通过扫面登陆微社区等现象. 很多原因要么是因为用户自己没有认证服务号的却选择了认证服务号项,要么就是有认证服务号的却选择了未认证服务号的选项.基本都是操作上的失误导致. 解决方法很简单: 如果你没有安装微信插件,请你先安装. 首先登陆网站后台——开通微社区——应用——微信登陆——微信设置: 注意在公众号类型设置这里,如果你是没有认证服务号的,请一定选择“无公众号/订