同步操作将从 Anyon/WeChatDeveloper 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php// +----------------------------------------------------------------------// | WeChatDeveloper// +----------------------------------------------------------------------// | 版权所有 2014~2024 ThinkAdmin [ thinkadmin.top ]// +----------------------------------------------------------------------// | 官方网站: https://thinkadmin.top// +----------------------------------------------------------------------// | 开源协议 ( https://mit-license.org )// | 免责声明 ( https://thinkadmin.top/disclaimer )// +----------------------------------------------------------------------// | gitee 代码仓库:https://gitee.com/zoujingli/WeChatDeveloper// | github 代码仓库:https://github.com/zoujingli/WeChatDeveloper// +----------------------------------------------------------------------namespace WeChat;use WeChat\Contracts\BasicWeChat;use WeChat\Contracts\Tools;use WeChat\Exceptions\InvalidResponseException;/*** 微信前端支持* Class Script* @package WeChat*/class Script extends BasicWeChat{/*** 删除JSAPI授权TICKET* @param string $type TICKET类型(wx_card|jsapi)* @param string $appid 强制指定有效APPID* @return void*/public function delTicket($type = 'jsapi', $appid = null){is_null($appid) && $appid = $this->config->get('appid');$cache_name = "{$appid}_ticket_{$type}";Tools::delCache($cache_name);}/*** 获取JSAPI_TICKET接口* @param string $type TICKET类型(wx_card|jsapi)* @param string $appid 强制指定有效APPID* @return string* @throws \WeChat\Exceptions\InvalidResponseException* @throws \WeChat\Exceptions\LocalCacheException*/public function getTicket($type = 'jsapi', $appid = null){is_null($appid) && $appid = $this->config->get('appid');$cache_name = "{$appid}_ticket_{$type}";$ticket = Tools::getCache($cache_name);if (empty($ticket)) {$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type={$type}";$this->registerApi($url, __FUNCTION__, func_get_args());$result = $this->httpGetForJson($url);if (empty($result['ticket'])) {throw new InvalidResponseException('Invalid Resoponse Ticket.', '0');}$ticket = $result['ticket'];Tools::setCache($cache_name, $ticket, 7000);}return $ticket;}/*** 获取JsApi使用签名* @param string $url 网页的URL* @param string $appid 用于多个appid时使用(可空)* @param string $ticket 强制指定ticket* @param array $jsApiList 需初始化的 jsApiList* @return array* @throws \WeChat\Exceptions\InvalidResponseException* @throws \WeChat\Exceptions\LocalCacheException*/public function getJsSign($url, $appid = null, $ticket = null, $jsApiList = null){list($url,) = explode('#', $url);is_null($ticket) && $ticket = $this->getTicket('jsapi');is_null($appid) && $appid = $this->config->get('appid');is_null($jsApiList) && $jsApiList = ['updateAppMessageShareData', 'updateTimelineShareData', 'onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone','startRecord', 'stopRecord', 'onVoiceRecordEnd', 'playVoice', 'pauseVoice', 'stopVoice', 'onVoicePlayEnd', 'uploadVoice', 'downloadVoice','chooseImage', 'previewImage', 'uploadImage', 'downloadImage', 'translateVoice', 'getNetworkType', 'openLocation', 'getLocation','hideOptionMenu', 'showOptionMenu', 'hideMenuItems', 'showMenuItems', 'hideAllNonBaseMenuItem', 'showAllNonBaseMenuItem','closeWindow', 'scanQRCode', 'chooseWXPay', 'openProductSpecificView', 'addCard', 'chooseCard', 'openCard',];$data = ["url" => $url, "timestamp" => '' . time(), "jsapi_ticket" => $ticket, "noncestr" => Tools::createNoncestr(16)];return ['debug' => false,"appId" => $appid,"nonceStr" => $data['noncestr'],"timestamp" => $data['timestamp'],"signature" => $this->getSignature($data, 'sha1'),'jsApiList' => $jsApiList,];}/*** 数据生成签名* @param array $data 签名数组* @param string $method 签名方法* @param array $params 签名参数* @return bool|string 签名值*/protected function getSignature($data, $method = "sha1", $params = []){ksort($data);if (!function_exists($method)) return false;foreach ($data as $k => $v) $params[] = "{$k}={$v}";return $method(join('&', $params));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。