Heim  >  Artikel  >  Backend-Entwicklung  >  Nutzungsanalyse der thinkPHP WeChat-Freigabeschnittstelle JSSDK

Nutzungsanalyse der thinkPHP WeChat-Freigabeschnittstelle JSSDK

不言
不言Original
2018-06-08 14:50:121764Durchsuche

Dieser Artikel stellt hauptsächlich die Verwendung der thinkPHP WeChat-Freigabeschnittstelle JSSDK vor und analysiert die spezifischen Schritte und zugehörigen Bedienungsfähigkeiten des thinkPHP-Aufrufs der WeChat-Freigabeschnittstelle in Form von Beispielen

Die Beispiele in diesem Artikel beschreiben die Verwendung des JSSDK der thinkPHP WeChat-Freigabeschnittstelle. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Fügen Sie zuerst die Tabelle access_token zur Datenbank hinzu:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for access_token
-- ----------------------------
DROP TABLE IF EXISTS `access_token`;
CREATE TABLE `access_token` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `access_token` char(64) NOT NULL COMMENT '令牌-唯一标识',
 `expires_time` varchar(64) DEFAULT NULL COMMENT '过期时间',
 `ticket` char(64) NOT NULL COMMENT '临时票据',
 `ticket_expires_time` varchar(64) DEFAULT NULL COMMENT '过期的票据时间',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='token缓存表';
/**
* 添加微信分享接口
* 第一步:access token
*/
public function getAccessToken(){
  $appid = '你的appid'; //获取用户唯一凭证
  $secret = '你的secret'; //用户唯一凭证密钥
  $time = time()+7000; //当前时间+2小时等于过期时间
  if (!$token) {
    $res = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' .$appid.'&secret='. $secret);
    $res = json_decode($res, true);
    $token = $res['access_token'];
    $model = D('access_token'); //把获取的token存储到数据库中
    if($token){
      $data = array(
      'access_token' => $token,
      'expires_time' => $time
      );
      $data = $model->add($data); //把获得的token存储到数据库中
    }
  }
  return $token;
}
/**
* 添加微信分享接口
* 第二步:用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket
*/
public function getJsapiTicket(){
  $time = time()+7000; //当前时间+2小时等于过期时间
  $map['ticket_expires_time'] = array('gt',time());
  $res = D('access_token')->where('ticket_expires_time')->field('ticket')->find();
  if($res){
    $ticket = $res['ticket'];
    $result['result'] = $ticket; //没查询到符合条件的
    jsonpReturn($result);
  } else{
    $token = $this->getAccessToken();
    $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi");
    $res = json_decode($res, true);
    $ticket = $res['ticket'];
    // ticket不能频繁的访问接口来获取,在每次获取后,我们把它保存到数据库中。
    $model = D('access_token'); //把获取的ticket存储到数据库中
    if($ticket){
      $data = array(
      'access_token' => $token,
      'expires_time' => $time,
      'ticket' => $ticket,
      'ticket_expires_time' => $time
      );
      $data = $model->add($data); //把获得的token存储到数据库中
    }
    $result['result'] = $ticket; //没查询到符合条件的
    jsonpReturn($result);
  }
}

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, das wird so sein Seien Sie hilfreich für das Studium aller, mehr verwandte Bitte achten Sie auf den Inhalt der chinesischen PHP-Website!

Verwandte Empfehlungen:

Analyse zum Rückrufproblem des thinkPHP-Frameworks, das die Alipay-Sofortzahlungsschnittstelle andockt

Über thinkphp3. 2 Analyse des eingebetteten Baidu-Editors ueditor

So verwenden Sie thinkphp, um die Client-IP zu erhalten

Das obige ist der detaillierte Inhalt vonNutzungsanalyse der thinkPHP WeChat-Freigabeschnittstelle JSSDK. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn