微信測試號實現微信分享等功能


由於個人賬號不能微信認證,無法使用分享接口,所以只能用測試號了

 

 

 

1 申請微信測試號

申請地址,微信公眾平台開發者文檔:http://mp.weixin.qq.com/wiki/home/index.html

點擊“接口測試號申請”,后續操作請根據微信提示來掃碼,就ok了。

 

2 申請成功

  后面說怎么設置這些。

 

3 下載微信的測試代碼

  微信網頁開發-》微信JS-SDK

 

拉到最下面,就可以看見下載鏈接了

 

 4 將下載的代碼放到自己的服務器上

    沒有的自己去申請個免費的新浪雲,或者其他的

 

 5 接口配置信息

URL設置為自己服務器地址上wx_sample的地址。

Token隨意設置, 和wx_sample里的define("TOKEN", "weixin")一致就行。

 

wx_sample沒有在微信下載的源碼里,代碼如下:

<?php
/**
  * wechat php test
  */

//define your token
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->valid();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }
        
    private function checkSignature()
    {
        // you must define TOKEN by yourself
        if (!defined("TOKEN")) {
            throw new Exception('TOKEN is not defined!');
        }
        
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
        
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        // use SORT_STRING rule
        sort($tmpArr, SORT_STRING);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

?>

 

 

6 JS安全域名

 就是自己服務器地址

 

 

7 掃碼關注,只有關注的微信號才能測試

 

8 測試號就設置完成了,現在修改sample.php文件

首先appid和appsecret要和測試號上的一致

$jssdk = new JSSDK("wx4a14bf95e973b059", "af99ce68694f39e2712e7cf7c22fe224");

 

在wx.config中,配置要使用的接口

jsApiList: [
      // 所有要調用的 API 都要加到這個列表中
    'onMenuShareAppMessage','onMenuShareTimeline'
    ]

 

最后在wx.ready中寫具體接口,代碼如下:

 

<?php
require_once "jssdk.php";
$jssdk = new JSSDK("wx4a14bf95e973b059", "af99ce68694f39e2712e7cf7c22fe224");
$signPackage = $jssdk->GetSignPackage();
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title></title>
</head>
<body>
   微信分享測試
</body>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
  /*
   * 注意:
   * 1. 所有的JS接口只能在公眾號綁定的域名下調用,公眾號開發者需要先登錄微信公眾平台進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。
   * 2. 如果發現在 Android 不能分享自定義內容,請到官網下載最新的包覆蓋安裝,Android 自定義分享接口需升級至 6.0.2.58 版本及以上。
   * 3. 常見問題及完整 JS-SDK 文檔地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
   *
   * 開發中遇到問題詳見文檔“附錄5-常見錯誤及解決辦法”解決,如仍未能解決可通過以下渠道反饋:
   * 郵箱地址:weixin-open@qq.com
   * 郵件主題:【微信JS-SDK反饋】具體問題
   * 郵件內容說明:用簡明的語言描述問題所在,並交代清楚遇到該問題的場景,可附上截屏圖片,微信團隊會盡快處理你的反饋。
   */
  wx.config({
    debug: true,
    appId: '<?php echo $signPackage["appId"];?>',
    timestamp: <?php echo $signPackage["timestamp"];?>,
    nonceStr: '<?php echo $signPackage["nonceStr"];?>',
    signature: '<?php echo $signPackage["signature"];?>',
    jsApiList: [
      // 所有要調用的 API 都要加到這個列表中
    'onMenuShareAppMessage','onMenuShareTimeline'
    ]
  });


  wx.ready(function () {
    
    //分享朋友圈
    wx.onMenuShareTimeline({
        title: '分享標題', // 分享標題
        link: 'http://www.baidu.com', // 分享鏈接
        imgUrl: '', // 分享圖標
        success: function () { 
            // 用戶確認分享后執行的回調函數
        },
        cancel: function () { 
            // 用戶取消分享后執行的回調函數
        }
    });

    //分享給朋友
    wx.onMenuShareAppMessage({
        title: '微信分享標題', // 分享標題
        desc: '微信分享描述', // 分享描述
        link: 'http://www.baidu.com', // 分享鏈接
        imgUrl: '', // 分享圖標
        type: '', // 分享類型,music、video或link,不填默認為link
        dataUrl: '', // 如果type是music或video,則要提供數據鏈接,默認為空
        success: function () { 
            // 用戶確認分享后執行的回調函數
        },
        cancel: function () { 
            // 用戶取消分享后執行的回調函數
        }
    });
  });
</script>
</html>

 

9 在微信上打開,並分享

微信上打開網址   120.24.188.118/web/sample/sample.php

然后分享,就可以看到分享配置里的標題、圖片等分享內容

 

 

10 問題

遇到invaild signature錯誤。找了半天,發現jssdk.php中獲取的token為空。

以為是php的curl沒開,后來發現php.ini已經開了。然后百度到curl版本問題,將httpGet中這兩行設置為false就行了。

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM