apicloud mysql_APICloud 微信授权登录

使用此模块之前建议先配置 config.xml 文件,配置完毕,需通过云端编译生效,配置方法如下:

名称:wx

参数:urlScheme、apiKey、apiSecret

配置示例:

字段描述:

urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用可以启动微信客户端,也可以从微信客户端跳回本应用。urlScheme 的 value 值是从微信开放平台获取的 appid。appid 申请方法参考微信开放平台接入文档。

apiKey:(必须配置)从微信开放平台获取的 appid,值与 urlScheme 相同。appid 申请方法参考微信开放平台接入文档。

apiSecret:从微信开放平台获取的 secret。获取 accessToken 时需要配置此项。appid 申请方法参考微信开放平台接入文档。

引入wx模块

var wx = api.require('wx');

判断当前手机是否安装微信客户端

wx.isInstalled(function(ret, err) {

if (ret.installed) {

alert("当前设备已安装微信客户端");

} else {

alert('当前设备未安装微信客户端');

}

});

auth 登录授权(用于实现第三方登录)

auth({params}, callback(ret, err))

params

apiKey:

类型:字符串

描述:(可选项)从微信开放平台获取的 appid,若不传则从当前 widget 的 config.xml 中读取,不传或传入错误的 apiKey,则无法打开微信进行登录。

callback(ret, err)

ret:

类型:JSON 对象

内部字段:

{

status: true, //布尔型;true||false

code: '' //字符串类型;getToken 接口需传入此值,用于换取 accessToken

}

err:

类型:JSON 对象

内部字段:

{

code: 0 //数字类型;

//错误码:

//-1(未知错误),

//0(成功,用户同意)

//1 (用户取消)

//2 (用户拒绝授权)

//3 (当前设备未安装微信客户端)

}

示例代码

var wx = api.require('wx');

wx.auth({

apiKey: ''

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(err.code);

}

});

getToken获取授权 accessToken(需要登录授权成功)

getToken({params}, callback(ret, err))

params

apiKey:

类型:字符串

描述:(可选项)从微信开放平台获取的 appid,若不传则从当前 widget 的 config.xml 中读取。

apiSecret

类型:字符串

描述:(可选项)从微信开放平台获取的 secret,若不传则从当前 widget 的 config.xml 中读取。

code

类型:字符串

描述:通过 auth 接口授权成功后返回的 code 参数

callback(ret, err)

ret:

类型:JSON 对象

内部字段:

{

status: true, //布尔型;true||false

accessToken: '', //字符串类型;接口调用凭证,传给 getUserInfo 接口 获取用户信息;有效期2小时

dynamicToken: '', //字符串类型;当 accessToken 过期时把该值传给 refreshToken 接口刷新 accessToken 的有效期。dynamicToken 的有效期为30天

expires: 7200, //数字类型;accessToken 有效期,单位(秒)

openId: '' //字符串类型;授权用户唯一标识

}

err:

类型:JSON 对象

内部字段:

{

code: 0 //数字类型;

//错误码:

//-1(未知错误),

//0 (成功)

//1 (apiKey值为空或非法)

//2 (apiSecret值为空或非法)

//3 (code值为空或非法)

//4 (网络超时)

}

示例代码

var wx = api.require('wx');

wx.getToken({

apiKey: '',

apiSecret: '',

code: "12346857684"

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(err.code);

}

});

补充说明

此接口需要访问网络,异步调用 callback 需要一段时间才能返回 accessToken

getUserInfo获取用户信息(需要获取 accessToken 成功)

params

accessToken:

类型:字符串

描述:getToken 接口或 refreshToken 接口成功获取的 accessToken 值

openId:

类型:字符串

描述:getToken 接口或 refreshToken 接口成功获取的 openId 值

lang:

类型:字符串

描述:(可选项)国家地区语言版本

默认:zh_CN

取值范围:

zh_CN 简体

zh_TW 繁体

en 英语

callback(ret, err)

ret:

类型:JSON 对象

内部字段:

{

status: true, //布尔型;true||false

openid: '', //字符串类型;普通用户的标识,对当前开发者帐号唯一

nickname: '', //字符串类型;普通用户昵称

sex: 1, //数字类型;普通用户性别,1为男性,2为女性

headimgurl: '', //字符串类型;用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空

privilege: [], //数组类型;用户特权信息,如微信沃卡用户为(chinaunicom)

unionid: '' //字符串类型;用户统一标识。针对一个微信开放平台帐号下的应用,同一用户的unionid是唯一的。

}

err:

类型:JSON 对象

内部字段:

{

code: 0 //数字类型;

//错误码:

//-1(未知错误),

//0 (成功),

//1 (accessToken 过期),

//2 (openId非法),

//3 (openId值为空),

//4 (accessToken值为空),

//5 (accessToken非法)

//6 (网络超时)

}

示例代码

var wx = api.require('wx');

wx.getUserInfo({

accessToken: '',

openId: ''

}, function(ret, err) {

if (ret.status) {

alert(JSON.stringify(ret));

} else {

alert(err.code);

}

});

给大家讲下 自己做到列子,

apiKey和apiSecret 都是官网提供的,不能授权登录获取到用户信息

function initWXBind() {

var wx = api.require('wx');

var code = '';

wx.isInstalled(function(ret, err) {

if (!ret.installed) {

alert("当前设备未安装微信客户端");

} else {

wx.auth({

apiKey: 'wxd0d84bbf23b4a0e4'

}, function(ret, err) {

if (ret.status) {

wx.getToken({

apiKey: 'wxd0d84bbf23b4a0e4',

apiSecret: 'a354f72aa1b4c2b8eaad137ac81434cd',

code: ret.code

}, function(ret, err) {

if (ret.status) {

api.showProgress({

style: 'default',

animationType: 'fade',

title: '授权成功',

text: '绑定处理中...',

modal: true

});

wx.getUserInfo({

accessToken: ret.accessToken,

openId: ret.openId

}, function(ret, err) {

if (ret.status) {

// 绑定成功

WXbindAccount(ret.openid);

api.hideProgress();

}

});

} else {

alert(err.code);

}

});

}

});

}

});

}

调用接口,传参

function WXbindAccount(参数1) {

api.ajax({

url: '接口',

method: 'get',

data: {

values: {

openid: 参数,

}

}

}, function(ret, err) {

if (ret.retCode == 200) {

$api.setStorage("保存当前user",ret.data);

api.closeWin({

name:"login"

});

return true;

}

});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值