首页 » 网站建设 » php办事号技巧_运用PHP对微信服务号JSSDK签名授权的开拓实录

php办事号技巧_运用PHP对微信服务号JSSDK签名授权的开拓实录

访客 2024-11-25 0

扫一扫用手机浏览

文章目录 [+]

2. 前端引入JSSDK

PHP做事器端配置

利用PHP脚本获取token及署名的代码如下:

php办事号技巧_运用PHP对微信服务号JSSDK签名授权的开拓实录

<?php// curl获取数据function curl_get_contents($url, $timeout = 8){ $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $url); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_TIMEOUT, $timeout); $result = curl_exec($curlHandle); curl_close($curlHandle); return $result;}// 获取tokenfunction getToken () { $appid = 'wx';; $appsecret = ''; return curl_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$appsecret);}// 获取ticketfunction getTicket ($token) { return curl_get_contents('https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$token.'&type=jsapi');}// 天生无序字符串function genNonceStr ($length = 16) { $chars = \"大众abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\"大众; $str = \"大众\"大众; for ($i = 0; $i < $length; $i++) { $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); } return $str;}// 天生配置function genConfig () {// 获取 access_token $access_token = json_decode(getToken(), true)['access_token']; // 获取 ticket $ticket = json_decode(getTicket($access_token), true)['ticket']; // 天生署名 $nonstr = genNonceStr(); $url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; $time = time(); $query = [ 'jsapi_ticket' => $ticket, 'noncestr' => $nonstr, 'timestamp' => $time, 'url' => $url ]; $signStr = \"大众jsapi_ticket=$ticket&noncestr=$nonstr&timestamp=$time&url=$url\"大众; $signature = sha1($signStr); $appid = 'wx'; return json_encode([ 'code' => 1, 'data' => [ 'query' => $query, 'signStr' => $signStr, 'appId' => $appid, 'timestamp' => $time, 'nonceStr' => $nonstr, 'signature' => $signature, 'url' => $url ] ]);}echo genConfig();

获取署名的方法:先获取ticket,然后利用ticket换取token,末了利用获取到的token打算出署名(signature)。

php办事号技巧_运用PHP对微信服务号JSSDK签名授权的开拓实录
(图片来自网络侵删)
客户端配置

1. 获取做事器端署名

2. 配置wx.config参数

3. 配置权限列表

weixinInit () { const time = new Date().getTime() axiosBase.get(`/wechat/genConfig?t=${time}`).then(function (response) { if (response.data.code !== 1) { return } let parm = response.data.data wx.config({ debug: false, appId: parm.appId, timestamp: parm.timestamp, nonceStr: parm.nonceStr, signature: parm.signature, jsApiList: [ 'getLocation', 'checkJsApi', 'chooseWXPay', 'closeWindow', 'openLocation', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'hideMenuItems', 'scanQRCode' ] }) })}// 封装微信各种分享weixinShare (title, link, imgUrl, desc) { this.weixinInit() wx.ready(() => { wx.hideMenuItems({ menuList: [ 'menuItem:copyUrl', 'menuItem:openWithQQBrowser', 'menuItem:openWithSafari', 'menuItem:share:email', 'menuItem:share:brand' ] }) // 分享到朋友圈 wx.onMenuShareTimeline({ title: title, // 分享标题 link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众年夜众号JS安全域名同等 imgUrl: imgUrl, // 分享图标 success: function () {}, cancel: function () {} }) // 分享给朋友 wx.onMenuShareAppMessage({ title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众年夜众号JS安全域名同等 imgUrl: imgUrl, // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要供应数据链接,默认为空 success: function () {}, cancel: function () {} }) // 分享到QQ wx.onMenuShareQQ({ title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () {}, cancel: function () {} }) // 分享到腾讯微博 wx.onMenuShareWeibo({ title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () {}, cancel: function () {} }) // 分享到QQ空间 wx.onMenuShareQZone({ title: title, // 分享标题 desc: desc, // 分享描述 link: link, // 分享链接 imgUrl: imgUrl, // 分享图标 success: function () {}, cancel: function () {} }) })}常用接口的利用

菜单干系:

wx.hideMenuItems 隐蔽菜单项wx.showMenuItems 显示菜单项

分享干系:

wx.onMenuShareTimeline 分享到朋友圈wx.onMenuShareAppMessage 分享给朋友wx.onMenuShareQQ 分享到QQwx.onMenuShareWeibo 分享到腾讯微博wx.onMenuShareQZone 分享到QQ空间

位置干系:

wx.openLocation 利用微信内置舆图查看位置接口wx.getLocation 获取地理位置接口

其他常用:

wx.chooseWXPay 支付wx.scanQRCode 扫一扫把稳事变

关于iOS单页运用分享失落败的办理

在iOS中利用JSSDK的时候,利用单页运用的办法开拓,会创造微信只认入口页面的配置,如果路由改变,复制链接,仍旧还是入口页面路径,因此导致微信分享等等功能也无效,分享出去的配置仍旧还是入口页面配置的分享参数。

要办理此问题,必须在每次利用微信接口之前都重新初始化微信JSSDK。

结束语

更新有点晚, 这篇文章是我以前博客里面的一篇文章, 紧张是微信JSSDK的一些利用记录, 至于前面的Docker系列文章实战部分将隔段韶光再连续揭橥, 一次性发完也不是那么随意马虎消化, 敬请期待。

相关文章

介绍皮肤设置,如何打造理想肌肤状态

随着科技的发展和人们对美的追求,皮肤设置已成为美容护肤的重要一环。如何根据皮肤类型、肤质、年龄等因素进行合理设置,已成为众多爱美人...

网站建设 2025-01-03 阅读1 评论0

介绍盖章制作,传承文化,彰显权威

自古以来,盖章在我国文化中具有重要的地位。从古代的官印、私印到现代的公章、合同章,盖章已成为一种独特的文化符号,承载着丰富的历史内...

网站建设 2025-01-03 阅读1 评论0

介绍监控破坏,技术手段与法律风险并存

随着科技的飞速发展,监控设备已遍布大街小巷,成为维护社会治安的重要手段。一些不法分子为了逃避法律制裁,开始研究如何破坏监控设备。本...

网站建设 2025-01-03 阅读1 评论0

介绍登录不上之谜,技术故障还是人为疏忽

随着互联网的普及,登录已成为人们日常生活中不可或缺的一部分。在享受便捷的登录不上这一问题也困扰着许多用户。本文将深入剖析登录不上之...

网站建设 2025-01-03 阅读1 评论0

介绍电脑键盘调出方法,让操作更高效

随着科技的发展,电脑已经成为了我们日常生活中不可或缺的工具。而电脑键盘,作为电脑输入设备,更是我们与电脑进行交流的桥梁。你是否知道...

网站建设 2025-01-03 阅读1 评论0

介绍磁力链,高效便捷的文件下载利器

在互联网高速发展的今天,文件下载已成为日常生活中不可或缺的一部分。而磁力链作为一种新型的文件下载方式,凭借其高效、便捷的特点,受到...

网站建设 2025-01-03 阅读1 评论0