博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微信自定义分享
阅读量:6177 次
发布时间:2019-06-21

本文共 2858 字,大约阅读时间需要 9 分钟。

第一步:登录公众号,进入公众号设置 -> 选中功能设置,找到页面下面的 js接口安全域名

clipboard.png

点击 js接口安全域名下载红框的txt文件,并将文件复制到你下面填写的域名的根目录下,先上传再点击保存,文件上传的地方不对点击保存会报错,保存成功就代表第一步已经完成。

clipboard.png

第二步:进入微信公众号,开发 -> 基本配置 ,可以看到 AppID 和 AppSecret 的值,并设置 IP白名单,如图:

clipboard.png

注意:上图 AppID 和 AppSecret 的值一定要获取到并保存起来, IP 也一定要设置

1:先获取 access_token 的值,并将 access_token 值保存到数据库的,也可以利用缓存等,看个人习惯;

//获取微信签名所需的access_token    public function getAccessToken() {        //查询数据表里面的值        $info = D('WxToken')->find();        if($info['expires_in'] < time()){            //获取token的值            $url_token = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=第二步获取的AppID的值&secret=第二步获取的AppSecret的值';            $tmp = $this->CURLSend($url_token); //json格式            $obj = json_decode($tmp);            if($obj->access_token != null){                $data['access_token'] = $obj->access_token;                $data['expires_in'] = time() + $obj->expires_in;                if($info['id']){                    $res = D('WxToken')->where('id='.$info['id'])->save($data);                }else{                    $res = D('WxToken')->add($data);                }                if($res){                    $data_new = $obj->access_token;                }else{                    $data_new = 'error';                }                return $data_new;            }else return 'error';        }else return $info['access_token'];    }

2:获取微信签名所需的 jsapi_ticket

//获取微信签名所需的 ticket    public function getTicket(){        $token = $this->getAccessToken();        $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=$token&type=jsapi";        $tmp = $this->CURLSend($url); //json格式        $obj = json_decode($tmp);        return $obj->ticket;    }        private function CURLSend($url) {      $curl = curl_init();      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);      curl_setopt($curl, CURLOPT_TIMEOUT, 500);      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);      curl_setopt($curl, CURLOPT_URL, $url);      $res = curl_exec($curl);      curl_close($curl);      return $res;    }

3:获取微信签名及分享配置信息

//整理数据并获取微信签名    public function generateSign(){        $noncestr  = uniqid();        $timestamp = time();        $url       = 'http://' . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];        $ticket    = $this->getTicket();        if ($ticket) {            $str = 'jsapi_ticket='.$ticket.'&noncestr='.$noncestr.'×tamp='.$timestamp.'&url='.$url;            $signature = sha1($str);            $data['noncestr'] = $noncestr;            $data['timestamp'] = $timestamp;            $data['signature'] = $signature;            $data['appId'] = 第二步获取的AppID的值;            $data['link'] = $url;            return $data;        }    }

4:赋值给模板

public function index(){    $this->assign('wxdata',$this->generateSign());}

说明:PHP代码已完成下面是 js 代码

6:接下来就是配置文件了

转载地址:http://kpzda.baihongyu.com/

你可能感兴趣的文章
Android style报错
查看>>
Lintcode130 Heapify solution 题解
查看>>
【Map】Map、HashMap
查看>>
解决纯数字字符串在js方法参数中不稳定或被截取的问题
查看>>
如何在VMware安装Windows系统
查看>>
阶段性理解phantomjs/selenium/casperjs
查看>>
Java中高级开发工程师是什么技术水平(附28套Java进阶+高级视频教程)
查看>>
sudo命令
查看>>
第十九章 文本处理流编辑器:awk编程
查看>>
Xtrabackup+Rsync 备份数据库并同步到远端备份机
查看>>
activiti实战读书笔记——第九章 多实例
查看>>
php返回相对时间(如:20分钟前,3天前)的方法
查看>>
WilliamChart各种图表效果实现大全《IT蓝豹》
查看>>
shell脚本——linux主机监控
查看>>
eclipse配置jsp页面模板
查看>>
基于高德地图写的不同功能的地图应用
查看>>
DHCP服务器配置
查看>>
快速瓶颈识别
查看>>
运维工作总结201403
查看>>
我是菜鸟我加油……mysql主从同步
查看>>