위 챗 JSDK 공유 기능 그림 인 스 턴 스 상세 설명

이 글 의 실례 는 위 챗 JSDK 공유 기능 을 다 루 고 있다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
여기 서 위 챗 을 친구 권 에 공유 하고 위 챗 친구 에 게 공유 하 는 예 를 들 어 호출 테스트 를 하고,다른 기능 을 추가 하려 면 자체 적 으로 개발 자 문서 을 확인 하면 된다.
일 을 잘 하려 면 먼저 그 기 구 를 이 롭 게 하고 아래 의 도움 도 구 를 잘 이용 해 야 한다.모두 텐 센트 가 개발 자 에 게 준 도구 이다.
1.위 챗 개발 자 설명 문서:클릭 하여 보기
2.위 챗 WEB 개발 자 도구:
윈도 64 비트 버 전:다운로드 주소
윈도 32 비트 버 전:다운로드 주소
Mac 버 전:다운로드 주소
3.위 챗 JSSDK 공유 샘플:다운로드 클릭
4.온라인 데모:http://203.195.235.76/jssdk/
위 챗 버 전 6.0 이후 기 존의 WeixinJSBridge.on('menu:share:timeline',function(argv){}은 더 이상 사용 할 수 없습니다.위 챗 의 다른 기능 을 어떻게 사용 합 니까?공식 적 으로 JSDK 의 사용 을 알려 주 셔 서 저희 가 해결 할 수 있 도록 도와 주 셨 습 니 다.
선언:
위 챗 이 JSDK 를 제 공 했 지만 이것 은 사용자 정의 버튼 으로 위 챗 의 공유 인 터 페 이 스 를 직접 열 수 있다 는 것 을 의미 하 지 는 않 습 니 다.이 JSDK 는 위 챗 공유 인터페이스의 내용 만 정 의 했 을 뿐 실제 적 으로 사용자 가 오른쪽 상단 의 메뉴 단 추 를 눌 러 주동 적 으로 공유 해 야 합 니 다.사용자 가 공유 인 터 페 이 스 를 누 르 면 나타 나 는 내용 은 사용자 가 정의 한 공유 제목 입 니 다.그림 과 링크.
1. JSDK 사용 절차
1.1.1 단계 1:귀속 도 메 인 이름 1.1.2 단계 2:JS 파일 도입 1.1.3 단계 3:config 인터페이스 주입 권한 검증 설정 ($tpl['appid']$tpl['appsercret']너 자신 으로 바 꿔!) 1.1.4 단계 4:ready 인터페이스 처 리 를 통 해 성공 적 으로 검증 1.1.5 단계 5:error 인터페이스 처리 실패 검증
2.실측 도해:
2.1 테스트 페이지:

2.2 친구 권 에 공유:




2.3 친구 권 에 공유:
 
(이것 은 success 를 촉발 하 는 효과 입 니 다.그림 설명 을 잘못 썼 습 니 다.죄송합니다)
(이것 은 cancel 을 촉발 하 는 효과)

2.3 디 버 깅 인터페이스:

3.실측 코드 사례:
배경 코드(jssdk.php 는 뒤쪽 참조):

	//  apptoken
	require_once "jssdk.php";
	$jssdk = new JSSDK($appid,$appsecret);//       appid  secret
	$signPackage = $jssdk->GetSignPackage();
	$this->assign("signPackage",$signPackage);
JS 설정 코드

<script type="text/javascript" src='http://res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
 <script type="text/javascript">
 wx.config({
 debug: false,
 appId: '{$signPackage["appId"]}',
 timestamp: '{$signPackage["timestamp"]}',
 nonceStr: '{$signPackage["nonceStr"]}',
 signature: '{$signPackage["signature"]}',
 jsApiList: [
  //        API          
  'checkJsApi',
  'onMenuShareTimeline',
  'onMenuShareAppMessage',
  'onMenuShareQQ',
  'onMenuShareWeibo',
  'onMenuShareQZone'
 ]
 });
 </script>
 <script type="text/javascript" src='http://203.195.235.76/jssdk/js/zepto.min.js'></script>
JS 공유 코드:

<script type="text/javascript">
  //  wx.config,    
   wx.ready(function () {
    //      
    wx.onMenuShareTimeline({
     title: '1111111', //     
     link:window.location.href,
     imgUrl: "{pigcms:$res['pic']}", //     
     success: function () {
		 //            
     alert('success');
     },
     cancel: function () {
     alert('cancel');
     }
    });

    //     
    wx.onMenuShareAppMessage({
     title: '22222', //     
     desc: '22222',
     link:window.location.href,
     imgUrl: "{pigcms:$res['pic']}", //     
     trigger: function (res) {
      //      trigger   ajax             ,                ,     ajax         
     },
     success: function (res) {
		  //            
      alert('   ');
     },
     cancel: function (res) {
      alert('   ');
     },
     fail: function (res) {
      alert(JSON.stringify(res));
     }
    });
   });

</script>
JSDK 클래스
jssdk.php

<?php
class JSSDK {
 private $appId;
 private $appSecret;

 public function __construct($appId, $appSecret) {
 $this->appId = $appId;
 $this->appSecret = $appSecret;
 }

 public function getSignPackage() {
 $jsapiTicket = $this->getJsApiTicket();

 //    URL        ,   hardcode.
 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
 $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

 $timestamp = time();
 $nonceStr = $this->createNonceStr();

 //            key   ASCII      
 $string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";

 $signature = sha1($string);

 $signPackage = array(
  "appId"  => $this->appId,
  "nonceStr" => $nonceStr,
  "timestamp" => $timestamp,
  "url"  => $url,
  "signature" => $signature,
  "rawString" => $string
 );
 return $signPackage; 
 }

 private function createNonceStr($length = 16) {
 $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 $str = "";
 for ($i = 0; $i < $length; $i++) {
  $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
 }
 return $str;
 }

 private function getJsApiTicket() {
 
  $accessToken = $this->getAccessToken();
  
  //           URL    ticket
  // $url = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=$accessToken";
  $url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
  $res = json_decode($this->httpGet($url));
  
  $ticket = $res->ticket;
  
 return $ticket;
 }

 private function getAccessToken() {
 // access_token          ,              
 //          URL  access_token
 // $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$this->appId&corpsecret=$this->appSecret";
  $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$this->appSecret";
  $res = json_decode($this->httpGet($url));
  $access_token = $res->access_token;
  
 return $access_token;
 }

 private function httpGet($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;
 }
}
더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기