为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
wxSubscribe 封装了微信一次性订阅sdk,为了不跟wx插件冲突本插件没有单独添加微信sdk,和wx插件使用相同的sdk,so本插件需要配合wx插件使用。监听不到用户是否点了授权还是取消,需要监听resume事件 然后调用服务端发送服务通知,看成功与否便知道用户是否点了授权还是取消。
微信一次性订阅文档地址:
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/One-time_subscription_info.html
微信一次性订阅授权
subscribe({appId:'appidxx',templateId:"templateidxx",scene:999,reserved:"helloworld",},function(ret,err))
appId
templateId
scene
reserved
ret:
{
status: true //布尔型;true||false
}
err:
{
code: 0 //数字类型;
//错误码:
//-1(未知错误),
//0(成功)
}
openId='';
appId='wxddxxxxx'
templateId="oGWCD1LiUgqBjsxxxxx"
scene=1000,
reserved="helloworld"
access_token='';
apiready = function(){
api.addEventListener({
name:'resume'
}, function(ret, err){
setTimeout(function(){if(access_token)postsubscribe();},500);
});
var wx = api.require('wx');
wx.auth({
apiKey: 'apikeyxx'
}, function(ret, err) {
if (ret.status) {
wx.getToken({
code: ret.code
}, function(ret, err) {
if (ret.status) {
console.log('getopenid='+JSON.stringify(ret));
openId=ret.openId
toSubscribe();
}
});
}
});
}
function toSubscribe(){
wxSubscribe = api.require('wxSubscribe');
var data={
appId:appId,
templateId:templateId,
scene:scene,
reserved:scene,
}
acc5WX.subscribe(data, function(ret, err){
console.log(JSON.stringify(ret));
getWXToken(ret);//其实这是后端代码调用的事情了,我只是为了测试方便写在了前端,项目发布时需要把这个功能放在后端写,这也是安全问题
});
}
function getWXToken(ret){
api.ajax({
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+appId+'&secret=xxxxsecretxxxxx',
method: 'get',
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}, function(ret2, err) {
if (ret) {
console.log(JSON.stringify(ret2));
access_token=ret2.access_token
wxsubmit(ret2.access_token,ret.openid,ret.template_id,ret.scene)
}
});
}
function wxsubmit(){
api.ajax({
url: 'https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token='+access_token,
method: 'post',
data: {
body: {
touser: openId,//填接收消息的用户openid
template_id: templateId,
scene: scene,
url:'http://www.xxx.com',//点击消息跳转的链接,需要有ICP备案
title: "xxx欢迎订阅xxx",
data: {
content: {
value: "你要对用户说的话",
color: "#00ff00"//可以是'red'也可以是'#fff000'
}
}
}
}
}, function(ret, err) {
if (ret) {
console.log('postsubscribe='+JSON.stringify(ret));
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本