前言:
如今小伙伴们对“使用ajax实现微信授权”都比较关心,同学们都想要了解一些“使用ajax实现微信授权”的相关文章。那么小编在网摘上网罗了一些有关“使用ajax实现微信授权””的相关文章,希望各位老铁们能喜欢,你们快快来了解一下吧!关于微信公众号取消模板消息,改为订阅通知的公告这里就不再细说了,关注的朋友去微信官网查看公告即可。本篇主要以PHP+JSS实现订阅通知功能为主。
本例以easywechat的laravel版本5.0为开发用例
1.获取jssdk
public function test(Request $request){ $app = MYFunction::openPlatform(); $app->jssdk->setUrl(';); $jssdk = $app->jssdk->buildConfig(array(),false,false,false,array('wx-open-subscribe')); return response()->json(['code' => '1','data'=>['jssdk'=>$jssdk]]);}
需要注意的是,调用jssdk时,需要设置JS安全域名及1.6版本以上
2.前端js
<script src="; type="text/javascript" charset="utf-8"></script><script type="text/javascript" charset="utf-8"> $(function(){ layer.open({type: 3}); $.ajax({ url: 'api/test', success : function(data){ layer.closeAll(); wx.config(data.data.jssdk); }, }); });</script><wx-open-subscribe template="Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0" id="subscribe-btn"> <template slot="style"> <style> .subscribe-btn { color: #fff; background-color: #07c160; } </style> </template> <template> <button class="subscribe-btn">一次性模版消息订阅</button> </template></wx-open-subscribe><script>var subTemplateId = new Array();subTemplateId[0] = 'Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0';var btn = document.getElementById('subscribe-btn');btn.addEventListener('success', function (e) { console.log('success', e.detail); let attend = false; let subscribeDetails = JSON.parse(e.detail.subscribeDetails); // 全部的模板 for(let i in subTemplateId) { let subKey = subscribeDetails[subTemplateId[i]]; // 获取每个模板的状态 let status = JSON.parse(subKey); let type = false; switch(status.status){ case "reject": alert(`用户拒绝订阅全部消息`); type = false; break; case "cancel": alert(`用户取消订阅全部消息`); type = false; break; case "filter": alert(`第${i}条消息应该标题同名被后台过滤`); type = false; break; default: type = true; break; }; if(!type) { // 如果其中有一个模板没有订阅,则全部不通过过 attend = false; break; } else { attend = true; }; }; if(!attend) { alert("订阅消息才能参与") console.log("订阅消息才能参与") return }; alert("参与成功") console.log("参与成功")});btn.addEventListener('error',function (e) { console.log('fail', e.detail); alert('订阅失败');});</script>
通常情况下,需要用户订阅的可能不只一个模板,这里使用了多模板进行演示,会有更好的用户体验。
3.消息推送中获取用户允许事件
报文格式如下:
{"ToUserName":"gh_f8259559aa59","FromUserName":"oKKb00xTOZZF9Te9MhRXzktcyBA0","CreateTime":"1619503336","MsgType":"event","Event":"subscribe_msg_popup_event","SubscribeMsgPopupEvent":{"List":{"TemplateId":"Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0","SubscribeStatusString":"accept","PopupScene":"1"}}}
这里要特别注意一下,本人写示例时跳过的坑,如果订阅通知使用开发平台进行开发,一定要去开放平台先选择订阅通知权限(后增加的功能,默认不选),之后需要已授权的公众号重新更新权限集,否则无法获得报文。
4.发送订阅通知
public function send(Request $request){ $app = MYFunction::openPlatform(); // easywechat目前不支持订阅通知,这个地方是我修改过的 $result = $app->template_message->sendSubscription([ 'touser' => 'oKKb00xTOZZF9Te9MhRXzktcyBA0', 'template_id' => 'Yi5YC-OLTWfDdvNS9aipJEHdFWfqDER_vlcmOFcK2B0', 'page' => 'blog.lingj.net', 'data' => [ 'thing1' => '测试订阅通知', 'thing2' => '自动', 'time4' => '2019年8月8日' ], ]);}
到此结束。
功能实现起来并不难,需要细心一些,多调试。
更多微信开发交流请留言或私信。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #使用ajax实现微信授权