微信开放平台创建应用中,创建移动应用时的应用官网怎么填

9246人阅读
微信开发(90)
在这篇微信公众平台开发教程中,我们将介绍如何使用微信开放平台接口实现移动应用微信登录的功能。&移动应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。在进行微信OAuth2.0授权登录接入之前,在微信开放平台注册开发者帐号,并拥有一个已审核通过的移动应用,并获得相应的AppID和AppSecret,申请微信登录且通过审核后,可开始接入流程。1、目前移动应用上微信登录只提供原生的登录方式,需要用户安装微信客户端才能配合使用。2、对于Android应用,建议总是显示微信登录按钮,当用户手机没有安装微信客户端时,请引导用户下载安装微信客户端。3、对于iOS应用,考虑到iOS应用商店审核指南中的相关规定,建议开发者接入微信登录时,先检测用户手机是否已安装微信客户端(使用sdk中isWXAppInstalled函数 ),对未安装的用户隐藏微信登录按钮,只提供其他登录方式(比如手机号注册登录、游客登录等)。授权流程说明微信OAuth2.0授权登录让微信用户使用微信身份安全登录第三方应用或网站,在微信用户授权登录已接入微信OAuth2.0的第三方应用后,第三方可以获取到用户的接口调用凭证(access_token),通过access_token可以进行微信开放平台授权关系接口调用,从而可实现获取微信用户基本开放信息和帮助用户实现基础开放功能等。微信OAuth2.0授权登录目前支持authorization_code模式,适用于拥有server端的应用授权。该模式整体流程为:1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数;2. 通过code参数加上AppID和AppSecret等,通过API换取access_token;3. 通过access_token进行接口调用,获取用户基本数据资源或帮助用户实现基本操作。获取access_token时序图:&第一步:请求CODE移动应用微信授权登录开发者需要配合使用微信开放平台提供的SDK进行授权登录请求接入。正确接入SDK后并拥有相关授权域(scope,)权限后,开发者移动应用会在终端本地拉起微信应用进行授权登录,微信用户确认后微信将拉起开发者移动应用,并带上授权临时票据(code)。iOS平台应用授权登录接入代码示例(请参考iOS接入指南):-(void)sendAuthRequest
//构造SendAuthReq结构体
SendAuthReq* req =[[[SendAuthReq alloc ] init ] autorelease ];
req.scope = @&snsapi_userinfo& ;
req.state = @&123& ;
//第三方向微信终端发送一个SendAuthReq消息结构
[WXApi sendReq:req];
}Android平台应用授权登录接入代码示例(请参考Android接入指南):{
// send oauth request
Final SendAuth.Req req = new SendAuth.Req();
req.scope = &snsapi_userinfo&;
req.state = &wechat_sdk_demo_test&;
api.sendReq(req);
}参数说明appid是应用唯一标识,在微信开放平台提交应用审核通过后获得scope是应用授权作用域,如获取用户个人信息则填写snsapi_userinfo()state否用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验&返回示例:appid: wxd477edab
scope: snsapi_userinfo
state: wechat_sdk_demo可拉起微信打开授权登录页:返回说明用户点击授权后,微信客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方。&ErrCodeERR_OK = 0(用户同意)ERR_AUTH_DENIED = -4(用户拒绝授权)ERR_USER_CANCEL = -2(用户取消)code用户换取access_token的code,仅在ErrCode为0时有效state第三方程序发送时用来标识其请求的唯一性的标志,由第三方程序调用sendReq时传入,由微信终端回传,state字符串长度不能超过1Klang微信客户端当前语言country微信用户当前国家信息第二步:通过code获取access_token获取第一步的code后,请求以下链接获取access_token:https://api./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&: &OezXcEiiBSKSxW0eoylIeOZ0dfxvb93UyrFdwznvwUv3JkVNVV1yFvQQa3IfuyMi4iZGDsAfe81sCaUXxyKrI-5XgCvhAS02eAC4MF2fJFl80Y9s-0h1EsuBmIVKgu0GnKhxCQ0M8G-gkQAJpzLzmQ&,
&expires_in&: 7200,
&refresh_token&: &OezXcEiiBSKSxW0eoylIeOZ0dfxvb93UyrFdwznvwUv3JkVNVV1yFvQQa3IfuyMiH7dCabGFyMRtZHnHPHuEK78cf1eISYJ4y453T8pDa2tFAIJu8bFeLMBpeFSv9dgnGrK-ZfRxHzhq7IW4qevEMQ&,
&openid&: &oH9d2v7NmDhsFzICG63UPSIOgUcY&,
&scope&: &snsapi_userinfo&,
&unionid&: &o4wcnwx0BVC4F_hSl5qCd5rC4Jps&
}参数说明access_token接口调用凭证expires_inaccess_token接口调用凭证超时时间,单位(秒)refresh_token用户刷新access_tokenopenid授权用户唯一标识scope用户授权的作用域,使用逗号(,)分隔unionid&当且仅当该移动应用已获得该用户的userinfo授权时,才会出现该字段&接口说明此接口用于获取用户个人信息。开发者可通过OpenID来获取用户基本信息。特别需要注意的是,如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的unionid是唯一的。换句话说,同一用户,对同一个微信开放平台下的不同应用,unionid是相同的。请注意,在用户修改微信头像后,旧的微信头像URL将会失效,因此开发者应该自己在获取用户信息后,将头像图片保存下来,避免微信头像URL失效后的异常情况。请求说明http请求方式: GEThttps://api./sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID参数说明access_token是调用凭证openid是普通用户的标识,对当前开发者帐号唯一& lang& 否国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语,默认为zh-CN{
&openid&: &oH9d2v7NmDhsFzICG63UPSIOgUcY&,
&nickname&: &方倍&,
&language&: &zh_CN&,
&city&: &&,
&province&: &&,
&country&: &CN&,
&headimgurl&: &/mmopen/pburdzLK7PUTcFw3ozK52Gravkznno51DSjnqnzsG6WzJLUOtadGBYYSVqh5YDicdawxrD6hHoR96OcyyDWAEgA/0&,
&privilege&: [],
&unionid&: &o4wcnwx0BVC4F_hSl5qCd5rC4Jps&
}参数说明openid普通用户的标识,对当前开发者帐号唯一nickname普通用户昵称sex普通用户性别,1为男性,2为女性province普通用户个人资料填写的省份city普通用户个人资料填写的城市country国家,如中国为CNheadimgurl用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空privilege用户特权信息,json数组,如微信沃卡用户为(chinaunicom)unionid用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。&&完整PHP SDKclass class_app
var $appid = APPID;
var $appsecret = APPSECRET;
//构造函数
public function __construct($appid = NULL, $appsecret = NULL)
if($appid && $appsecret){
$this-&appid = $appid;
$this-&appsecret = $appsecret;
//通过code获取access_token
public function oauth2_access_token($code)
$url = &https://api./sns/oauth2/access_token?appid=&.$this-&appid.&&secret=&.$this-&appsecret.&&code=&.$code.&&grant_type=authorization_code&;
$res = $this-&http_request($url);
return json_decode($res, true);
//获取用户个人信息(UnionID机制)
public function oauth2_get_user_info($access_token, $openid)
$url = &https://api./sns/userinfo?access_token=&.$access_token.&&openid=&.$openid.&&lang=zh_CN&;
$res = $this-&http_request($url);
return json_decode($res, true);
//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
protected function http_request($url, $data = null)
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);
return $output;
//日志记录
private function logger($log_content)
if(isset($_SERVER['HTTP_APPNAME'])){
sae_set_display_errors(false);
sae_debug($log_content);
sae_set_display_errors(true);
}else if($_SERVER['REMOTE_ADDR'] != &127.0.0.1&){ //LOCAL
$max_size = 500000;
$log_filename = &log.xml&;
if(file_exists($log_filename) and (abs(filesize($log_filename)) & $max_size)){unlink($log_filename);}
file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content.&\r\n&, FILE_APPEND);
}调用方法/*
方倍工作室 http://www.fangbei.org/
CopyRight 2014 All Rights Reserved
微信开放平台 移动应用 (微信登录)
header(&Content-type: text/ charset=utf-8&);
define('APPID',
&wx3f05f4b&);
define('APPSECRET',
&9acc222b92afb29cff90b9bcfc7d6080&);
$code = &b393c92a5a509ce24e2ef50f&;
$weixin = new class_app();
var_dump($weixin);
//传入授权临时票据(code)
$oauth2_info = $weixin-&oauth2_access_token($code);
var_dump($oauth2_info);
$result = $weixin-&oauth2_get_user_info($oauth2_info['access_token'], $oauth2_info['openid']);
var_dump($result);&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
付费QQ群:
读者QQ群:
免费QQ群:
文章:16篇
阅读:351113277人阅读
android 杂类(26)
你看到的这个文章来自于/ayanmw
在微信开放平台,申请移动应用的时候:
https://open./cgi-bin/appcreate?t=manage/createMobile&type=app&lang=zh_CN&token=60682ddfbdb1f9d70f56c98e5f728905
下一步后需要填写应用签名
这可难倒了我了..签名 keystore文件可没有这么简单.
&开发者可以使用签名工具直接从安装当前应用的手机中获取&
查找文档,根据这个页面提供的一个工具 签名生成工具
https://open./cgi-bin/readtemplate?t=resource/app_download_android_tmpl&lang=zh_CN
Android资源下载
开发第三方应用所需要的库以及文件。包含了一个完整的范例工程。该范例的使用可以参阅Android平台上手指南:HelloWeixin@Android。
用于获取安装到手机的第三方应用签名的apk包。
可以一个字符串,类似于:
&应用签名:049a9fde46bfc208b248
安装这个应用可以获取本手机已经安装的某个android软件,根据软件的包名,类似于: com.demo.AppX 来查找这个软件,以及获取这个软件的 应用签名。
还有一个工具是在
http://wiki./wiki/mobile/SDK下载
&的tools目录下有一个
&获取签名.apk ,这个也可以获取,但是我测试发现,只能显示一部分的本机应用,有些应用查不到,就麻烦了..
所以还是用wechart的那个吧.遗憾的是,腾讯为什么不把两个小工具源码也发出来呢??
微信开放平台 文档:
https://open./cgi-bin/frame?t=resource/res_main_tmpl
Signature的生成方法[java.security&类 Signature]
/technetwork/java/javase/6/docs/zh/api/java/security/Signature.html
Android获取应用程序信息列表:
/Ryandroid/archive//2263226.html
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:80030次
积分:1121
积分:1121
排名:千里之外
原创:16篇
转载:75篇
评论:24条
(1)(2)(3)(2)(5)(7)(3)(3)(16)(8)(10)(4)(5)(7)(6)(6)(3)利用微信开放平台中的网站应用实现订阅号用户信息的自获取 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 23时,
【笔记】记得曾经看到有人想订阅号也能实现OAuth来抓取信息。直接依赖订阅号自身是无法实现的,但微信开放平台(open.)中有一个网页应用登陆授权,于是花了300认证。原本以为可以了,却发现这里的登陆是基于页面二维码的登陆,也就是直接使用后会在微信浏览器中出现一个二维码,虚扫描才能登陆(坑爹啊……在微信浏览器中还要自己扫描自己)。因为官方提供的认证地址是https://open./connect/qrconnect?……他会生成一个二维码需要微信扫描登陆后获取信息,这和我需要的微信内自登陆相差太远。经过不断的尝试,发现一个小捷径:即更换上面的认证地址为:https://open./connect/oauth2/authorize?……,目前这个方法微信没写入开放平台的官方文档,但是却可以实现订阅号的微信内自登陆,不过和服务号的OAuth不同的是,这种方式是登陆操作(snsapi_login必须只能设置成这个),不是直接的获取操作(snsapi_base,snsapi_userinfo),具体表现是短时间重复登陆他会有一个&中间跳转页面(遗憾的是这个页面不美丽:-(),提示你已经登陆过了页面将会自动跳转到回调页面
代码片段(1)
1.&[代码][其他]代码&&&&
更换官方微信开放平台参考手册中的url地址为:
https://open./connect/oauth2/authorize?
开源中国-程序员在线工具:
相关的代码(132)
你好。我在买的《微信公众平台应用开发方法、技巧和案例》以及方倍工作室的《微信公众平台开发最佳实践》也看到了这样的代码。书上直接使用的就是下面的那种方式。
2楼:开源红薯烹调技术专家 发表于
引用来自“夜辰”的评论你好。我在买的《微信公众平台应用开发方法、技巧和案例》以及方倍工作室的《微信公众平台开发最佳实践》也看到了这样的代码。书上直接使用的就是下面的那种方式。是么!我都是碰巧测试出来的!感觉微信现在分离的太很了,一堆要认证的。
3楼:夜辰 发表于
我去看了下官网的文档,只说了下面那种链接啊
4楼:开源红薯烹调技术专家 发表于
引用来自“夜辰”的评论我去看了下官网的文档,只说了下面那种链接啊open.
是这个开放平台不是微信公众号平台文档
5楼:开源红薯烹调技术专家 发表于
引用来自“夜辰”的评论我去看了下官网的文档,只说了下面那种链接啊而且微信公众号平台文档中的网页OAuth授权 只对服务号和政府媒体订阅号开放 普通认证的订阅号也是没这个权限实现页面授权获取的
6楼:夜辰 发表于
引用来自“夜辰”的评论我去看了下官网的文档,只说了下面那种链接啊引用来自“FoxHunter”的评论而且微信公众号平台文档中的网页OAuth授权 只对服务号和政府媒体订阅号开放 普通认证的订阅号也是没这个权限实现页面授权获取的呃。我们用的测试账号,在微信里面可以申请。里面的文档就是这么写的
7楼:mosaic101 发表于
我也折腾了好久,从订阅号api看到开发平台,又看到服务号接口,看到方倍工作室说可以在订阅号里调用别的服务号接口,我就呵呵了。调用个毛线啊,code都获取不到,非要在那个服务号内打开才能获取code。我想问下,我刚刚试了一下,的确是那个页面可是也获取不到code,是什么原因?回调地址肯定没错,指点一下,十分感激
8楼:mosaic101 发表于
按道理登录后应该redirect_url?code=..........
9楼:lsyoga 发表于
请问一下这个方法目前还可行吗
10楼:成长之路n 发表于
引用来自“mosaic101”的评论我也折腾了好久,从订阅号api看到开发平台,又看到服务号接口,看到方倍工作室说可以在订阅号里调用别的服务号接口,我就呵呵了。调用个毛线啊,code都获取不到,非要在那个服务号内打开才能获取code。我想问下,我刚刚试了一下,的确是那个页面可是也获取不到code,是什么原因?回调地址肯定没错,指点一下,十分感激你搞错了
1.在后台访问 服务号 接口 (如:serverOpenid)
2.在服务号接口serverOpenid 中 重定向到 请求微信返回 code 的url 并回调到
另一个 方法中(如:otherOpenid 这个方法返回json)
这样你在服务号的 otherOpenid 中调用 oauth 的静默登陆 获得 json
4.将 3中返回的json 直接返回 或 处理后返回
总结: 你调用服务器 接口serverOpenid 会得到
otherOpenid返回的 json 这里面有你想要的信息
11楼:成长之路n 发表于
当然如果 服务号 调用静默登陆 & 只能获得对应 服务号的openid (这个可以作为 唯一登陆验证 不是对应订阅号的openid) &调用非静默登陆 可以 在oauth 中获得对应 对应的用户信息 &不过界面会显示 那个公众号 请求页面授权 &(用户会觉得 实际登陆公众号 和 请求授权公众号不一样) &所以关注时候 &后台调用服务号接口 获得服务号的唯一验证 再根据 关注信息的 来源用户openid &调用方法获得 用户信息 然后 将 &&&获得服务号的唯一验证 和来源用户openid &用户信息 储存在一个表中 或关联表中 &以便查询
12楼:mosaic101 发表于
引用来自“mosaic101”的评论我也折腾了好久,从订阅号api看到开发平台,又看到服务号接口,看到方倍工作室说可以在订阅号里调用别的服务号接口,我就呵呵了。调用个毛线啊,code都获取不到,非要在那个服务号内打开才能获取code。我想问下,我刚刚试了一下,的确是那个页面可是也获取不到code,是什么原因?回调地址肯定没错,指点一下,十分感激引用来自“成长之路n”的评论你搞错了
1.在后台访问 服务号 接口 (如:serverOpenid)
2.在服务号接口serverOpenid 中 重定向到 请求微信返回 code 的url 并回调到
另一个 方法中(如:otherOpenid 这个方法返回json)
这样你在服务号的 otherOpenid 中调用 oauth 的静默登陆 获得 json
4.将 3中返回的json 直接返回 或 处理后返回
总结: 你调用服务器 接口serverOpenid 会得到
otherOpenid返回的 json 这里面有你想要的信息
都过去一年了,尴尬!!!
开源从代码分享开始
开源红薯烹调技术专家的其它代码}

我要回帖

更多关于 微信开放平台创建应用 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信