1. 程式人生 > >用微信JS SDK實現分享到朋友圈和分享給朋友的功能(服務端介面開發)

用微信JS SDK實現分享到朋友圈和分享給朋友的功能(服務端介面開發)

前端呼叫的介面(getInfo.php)如下,通過該介面可以獲取所需的校驗欄位。

<?php
require_once "jssdk.php";
$url=isset($_GET['url'])? $_GET['url'] : 'no url';//動態獲取前端傳遞的待分享頁面的url
$jssdk = new JSSDK("appId",$url);
$signPackage = $jssdk->GetSignPackage();
echo json_encode($signPackage);
?>
jssdk.php如下
<?php
class JSSDK {
  private $appId;
  private $appSecret;

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

  public function getSignPackage() {
    $jsapiTicket = $this->getJsApiTicket();
    $cur_url=$this->url;
    $timestamp = time();
    $nonceStr = $this->createNonceStr(5);

    // 這裡引數的順序要按照 key 值 ASCII 碼升序排序
    $string="jsapi_ticket=".$jsapiTicket."&noncestr=".$nonceStr."×tamp=".$timestamp."&url=".$cur_url;
    //echo $string;
    $signature = sha1($string);

    $signPackage = array(
      "appId"     => $this->appId,
      "nonceStr"  => $nonceStr,
      "timestamp" => $timestamp,
      "url"       => $cur_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() {
    $tk = file_get_contents("/var/www/keys/wx_token/appid.token");//從檔案讀取access_token
    $url_getjstk='https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$tk.'&type=jsapi';
    $jstk = file_get_contents($url_getjstk);
    $arr_jstk=json_decode($jstk, true);
    $str_jstk=$arr_jstk["ticket"];
    return $str_jstk;
  }
}
為了方便開發,將獲取access_token的程式寫成了定時任務,每隔2分鐘執行一次(get_token.php)
<?php
class token
{
	public function get_content()
	{
		$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=appid&secret=secret";
		$str = file_get_contents($url); 
		return $str;
	}

	public function writet_result()
	{
		$str = $this->get_content();
		$arr = json_decode($str,true); 
		$fp=fopen("/var/www/keys/wx_token/appid.token","w");
		fputs($fp,$arr["access_token"]);
		fclose($fp);
		#$this->write_mem('token_iweicang', $str);
	}

	public function write_mem($key, $value) 
	{
		$mem = new Memcached();
		$mem->addServer('localhost', 11211);
		$mem->set($key, $value, 7200);
	}

}

$o = new token;
$o->writet_result();
?>

相關推薦

JS SDK實現分享朋友分享朋友功能服務介面開發

前端呼叫的介面(getInfo.php)如下,通過該介面可以獲取所需的校驗欄位。 <?php require_once "jssdk.php"; $url=isset($_GET['url'])

JS-SDK實現自定義分享功能分享朋友分享到QQ,分享

其實除了可以在微信上分享到朋友圈和傳送給好友,微信的分享介面還提供了分享到QQ和分享到騰訊微博……小編又繼續去微信公眾平臺學習了一下,其實都是一樣的嘛!就是在頁面的config介面注入許可權驗證配置好

公眾號開發《四》使用JS-SDK實現手機圖片上傳,支援壓縮、預覽。並下載圖片到自身伺服器

在這貼上上三篇博文連結,方便大家查閱互相學習: 本次講解微信開發第四篇:呼叫微信JS-SDK實現上傳手機圖片到伺服器,是非常常見的功能。如我們看到的使用者上傳頭像 下面是本次要實現的效果圖,支援預覽,壓縮上傳(自帶,可引數控制) 1.準備工作:工欲善其事,必先利其

公眾號實現跟關注使用者進行訊息的互動功能1封裝基本類

微信公眾號實現跟關注使用者進行訊息的互動功能,我們可以簡單的理解: (1)首先,使用者向微信伺服器傳送訊息; (2)微信伺服器接收到使用者的訊息處理之後,通過開發者配置的URL和Token 來找到第三方伺服器,並以XML形式向第三方伺服器傳送訊息。 (3)第三方伺服

開發2:js sdk分享朋友朋友,獲取config介面注入許可權驗證java

進行微信開發已經一陣子了,從最初的什麼也不懂,到微信授權登入,分享,更改底部選單,素材管理,等。 今天記錄一下微信jssdk 的分享給朋友的功能,獲取config介面注入。 官方文件走一下 簡單說:四步走 1.繫結域名 (注意:設定js安全域名的時候,需

公眾號開發--JS-SDK分享朋友分享朋友

之前寫過一篇使用微信JS-SDK來實現掃一掃功能的部落格 在該部落格裡介紹了微信JS-SDK的基本用法,其中包括以下幾個步驟 還詳細介紹了通過config介面注入許可權驗證配置以及簽名演算法實現的Java版本 前兩天在做微信分享的時候發現按照以前的

js-sdk+JAVA實現分享介面

1、獲取公眾號appid和secret       登入微信公眾平臺-基本配置 2、配置JS安全域名       公眾號設定-功能設定       注意:MP_verify_0MVuWBvVPoPJOmPF.txt伺服器不能攔截 3、IP白名單配置       開

關於JS-SDK 分享介面的兩個報錯記錄

一、前提: 微信測試號,用微信開發者工具測試 二、簡單複述文件: 1、引入JS檔案 在需要呼叫JS介面的頁面引入如下JS檔案,(支援https):http://res.wx.qq.com/open/js/jweixin-1.4.0.js 如需進一步提升服務穩定性,當上述資源不可訪問時,可改訪問:ht

JAVA實現呼叫js-sdk掃一掃

喜歡的朋友可以關注下。 已經很久沒有給大家分享一片技術文章了,今天抽了點時間來,給大家說一說如何呼叫微信提供的掃一掃介面。 前提: 需要申請一個公眾號:申請公眾號需要的資料我就不說了,去申請微信會提示需要哪些。 準備appid(公眾號的id) AppSecret (

分享一個PHP獲取JS-SDK配置的操作類

本來是使用easywechat的函式直接生成JS配置的,可是不知為何老是提示簽名是非法的,無奈只有自己寫一個操作類來獲取簽名了….. 但是不得不說easywechat是真的好用,特別是支付,簡直不能更簡單了,強行安利一波:https://www.easywechat.com/

JS-SDK 分享介面開發介紹版

本文主要是分享自己的開發過程,希望能給部分存在同樣問題的朋友一點點幫助;最近專案中的網頁通過微信分享朋友或朋友圈等功能出現了無法顯示分享圖片等資訊,後經過排查發現是微信版本升級導致,採用js-sdk完成分享介面,為了快速實現該功能效果,於是我打算通過前臺js進行實現來看看分享

JS-SDK影象介面的具體實現

影象選擇、上傳、預覽、下載 首先就是通過config介面注入許可權驗證配置這個就不多說了,通過百度大家基本上都可以自行解決。 影象選擇 wx.chooseImage({ count: 1, // 預設9,這個是可以選擇圖片的數量 siz

官方教程:教你JS-SDK介面

  1、分享類介面:支援獲取“分享到朋友圈”、“傳送給朋友”、“分享到QQ”和“分享到微博”按鈕的使用者點選狀態,同時支援自定義分享內容。 2、影象類介面:支援拍照,並從手機相簿選擇、上

公眾號開發《三》JS-SDK之地理位置的獲取,整合百度地圖實現線上地圖搜尋

本次講解微信開發第三篇:獲取使用者地址位置資訊,是非常常用的功能,特別是服務行業公眾號,尤為需要該功能,本次講解的就是如何呼叫微信JS-SDK介面,獲取使用者位置資訊,並結合百度地鐵,實現線上地圖搜尋,與線上導航。 在這貼上上二篇博文連結,方便大家訪問: 1.何為J

呼叫JS-SDK自定義分享以及其他介面

package com.zzx.Weixin.Util.action; import java.io.IOException; import java.security.MessageDigest; import java.util.UUID; import javax.servlet.http.Http

【Vue】VueJS-SDK分享系列二

Vue中使用微信JS-SDK,配置分享 這是微信系列的第二篇,這裡講會講到微信SDK分享的運用(分享都會了,其他的API不就一通百通了嗎) 1:微信公眾平臺配置好域名 2:專案引入微信js-sdk 這裡我需要用到微信js-sdk的.js檔案,匯入方式: 下

JS-SDK 分享回撥失效

官方說明如下: 獲取“分享給朋友”按鈕點選狀態及自定義分享內容介面 wx.onMenuShareAppMessage({ title: '', // 分享標題 desc: '', // 分享描述 link: '', // 分享連結 im

.Net網頁開發之使用JS-SDK自定義分享內容

第一步、微信JS-SDK的使用步驟,配置資訊的生成獲取講解:   關於JS-SDK的使用步驟和timestamp(時間戳),nonceStr(隨機串),signature(簽名),access_token(介面呼叫憑據)生成獲取的詳細說明在這裡:https://www.cnblogs.com/Can-day

JS-SDK怎樣使用

html cli net api entity auth sandbox nature wiki 前兩天要用到微信JS庫的的一句話——wx.closeWindow();可是整個調用過程有點兒淚奔了。。。。 盡管開發人員

JS SDK Demo

index cor play cts location 超過 voice error red 微信JS-SDK 分享到朋友圈 分享給朋友 分享到QQ 拍照或從手機相冊中選圖 識別音頻並返回識別結果 使用微信內置地圖查看位置原文:http://www.cnblogs.com/