使用此模块以前建议先配置 config.xml 文件,配置完毕,需经过云端编译生效,配置方法以下:ajax
<feature name="wx"> <param name="urlScheme" value="wxd0d84bbf23b4a0e4"/> <param name="apiKey" value="wxd0d84bbf23b4a0e4"/> <param name="apiSecret" value="a354f72aa1b4c2b8eaad137ac81434cd"/> </feature>
字段描述:api
urlScheme:(必须配置)用于实现应用间跳转及数据交换,本应用能够启动微信客户端,也能够从微信客户端跳回本应用。urlScheme 的 value 值是从微信开放平台获取的 appid。appid 申请方法参考微信开放平台接入文档。数组
apiKey:(必须配置)从微信开放平台获取的 appid,值与 urlScheme 相同。appid 申请方法参考微信开放平台接入文档。微信
apiSecret:从微信开放平台获取的 secret。获取 accessToken 时须要配置此项。appid 申请方法参考微信开放平台接入文档。网络
引入wx模块app
var wx = api.require('wx');
判断当前手机是否安装微信客户端异步
wx.isInstalled(function(ret, err) { if (ret.installed) { alert("当前设备已安装微信客户端"); } else { alert('当前设备未安装微信客户端'); } });
auth 登陆受权(用于实现第三方登陆)ide
auth({params}, callback(ret, err))ui
apiKey:url
ret:
{ status: true, //布尔型;true||false code: '' //字符串类型;getToken 接口需传入此值,用于换取 accessToken }
err:
{ 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({params}, callback(ret, err))
apiKey:
apiSecret
code
ret:
{ status: true, //布尔型;true||false accessToken: '', //字符串类型;接口调用凭证,传给 getUserInfo 接口 获取用户信息;有效期2小时 dynamicToken: '', //字符串类型;当 accessToken 过时时把该值传给 refreshToken 接口刷新 accessToken 的有效期。dynamicToken 的有效期为30天 expires: 7200, //数字类型;accessToken 有效期,单位(秒) openId: '' //字符串类型;受权用户惟一标识 }
err:
{ 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
accessToken:
openId:
lang:
ret:
{ status: true, //布尔型;true||false openid: '', //字符串类型;普通用户的标识,对当前开发者账号惟一 nickname: '', //字符串类型;普通用户昵称 sex: 1, //数字类型;普通用户性别,1为男性,2为女性 headimgurl: '', //字符串类型;用户头像,最后一个数值表明正方形头像大小(有0、4六、6四、9六、132数值可选,0表明640*640正方形头像),用户没有头像时该项为空 privilege: [], //数组类型;用户特权信息,如微信沃卡用户为(chinaunicom) unionid: '' //字符串类型;用户统一标识。针对一个微信开放平台账号下的应用,同一用户的unionid是惟一的。 }
err:
{ 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; } }); }