国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php版微信自定義分享代碼

2024-05-04 21:49:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

在許多大的網(wǎng)站我們都會(huì)看到點(diǎn)擊分享就可以把數(shù)據(jù)分享到微信或QQ或其它的平臺(tái)了,下面我們來(lái)看一段php版微信自定義分享代碼,代碼參考官方開(kāi)發(fā)的沒(méi)有任何問(wèn)題.

分享需要認(rèn)證微信訂閱號(hào)或者服務(wù)號(hào).

php 代碼(thinkphp):

  1. $appid='xxx'
  2.  $appsecret='xxxx'
  3.  
  4.  $timestamp = time(); 
  5.  $noncestr = $this->getRandStr(15); 
  6.  
  7.  // dump(); 
  8.  
  9.  $url = 'https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='$this->get_token($appid,$appsecret) .'&type=jsapi'
  10.  $ret_json = $this->curl_get_contents($url); 
  11.  $ret = json_decode($ret_json); 
  12.  $ticket = $ret-> ticket; 
  13.  //var_dump($ret); 
  14.  $strvalue = 'jsapi_ticket='.$ticket.'&noncestr='.$noncestr.'&timestamp='.$timestamp.'&url=http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
  15.  $signature = sha1($strvalue); 
  16.  
  17.  $this->assign('timestamp',$timestamp); 
  18.  $this->assign('nonceStr',$noncestr); 
  19.  $this->assign('signature',$signature); 
  20.  
  21.  
  22. function get_token($appid,$appsecret){ 
  23.  if(S('access_token')) return S('access_token'); 
  24.  $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"
  25.  $ret_json = $this->curl_get_contents($url); 
  26.  $ret = json_decode($ret_json); 
  27.  if($ret -> access_token){ 
  28.  S('access_token',$ret -> access_token,7200); 
  29.  return $ret -> access_token; 
  30.  } 
  31.  
  32.  
  33. function is_weixin(){ 
  34. if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false ) { 
  35. return true; 
  36. return false; 
  37.  
  38. function getRandStr($length){ 
  39.  $str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
  40.  $randString = ''
  41.  $len = strlen($str)-1; 
  42.  for($i = 0;$i < $length;$i ++){ 
  43.  $num = mt_rand(0, $len); 
  44.  $randString .= $str[$num]; 
  45.  } 
  46.  return $randString
  47.  
  48. &nbsp; 
  49.  
  50. function curl_get_contents($url){ 
  51.  $ch = curl_init(); 
  52.  curl_setopt($ch, CURLOPT_URL, $url); 
  53.  curl_setopt($ch, CURLOPT_TIMEOUT, 1); 
  54.  curl_setopt($ch, CURLOPT_MAXREDIRS, 200); 
  55.  curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_); 
  56.  curl_setopt($ch, CURLOPT_REFERER, _REFERER_); 
  57.  @curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
  58.  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
  59.  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
  60.  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
  61.  $r = curl_exec($ch); 
  62.  curl_close($ch); 
  63.  return $r

js代碼:需要引入:http://res.wx.qq.com/open/js/jweixin-1.0.0.js

  1. wx.config({ 
  2.  debug: false// 開(kāi)啟調(diào)試模式,調(diào)用的所有api的返回值會(huì)在客戶端alert出來(lái),若要查看傳入的參數(shù),可以在pc端打開(kāi),參數(shù)信息會(huì)通過(guò)log打出,僅在pc端時(shí)才會(huì)打印。 
  3.  appId: 'wxae7c36a1349c5868'// 必填,公眾號(hào)的唯一標(biāo)識(shí) 
  4.  timestamp: '{$timestamp}'// 必填,生成簽名的時(shí)間戳 
  5.  nonceStr: '{$nonceStr}'// 必填,生成簽名的隨機(jī)串 
  6.  signature: '{$signature}',// 必填,簽名,見(jiàn)附錄1 
  7.  jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'// 必填,需要使用的JS接口列表,所有JS接口列表見(jiàn)附錄2 
  8. }); 
  9.  
  10. wx.ready(function(){ 
  11. wx.onMenuShareTimeline({ 
  12.  title: '{$contentInfo.title}'// 分享標(biāo)題 
  13.  link: window.location.href, // 分享鏈接 
  14.  imgUrl: 'http://'+window.location.host+'{$categoryInfo.image}', // 分享圖標(biāo) 
  15.  success: function () { 
  16.  // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) 
  17.  //alert(1111); 
  18.  //fxfunc(); 
  19.  }, 
  20.  cancel: function () { 
  21.  // 用戶取消分享后執(zhí)行的回調(diào)函數(shù) 
  22.  //alert("您取消了分享"); 
  23.  } 
  24. }); 
  25.  
  26. &nbsp; 
  27.  
  28. wx.onMenuShareAppMessage({ 
  29.  title: '{$contentInfo.title}'// 分享標(biāo)題 
  30.  desc: removeHTMLTag('{$contentInfo.content}'), // 分享描述 
  31.  link: window.location.href, // 分享鏈接 
  32.  imgUrl: 'http://'+window.location.host+'{$categoryInfo.image}', // 分享圖標(biāo) 
  33.  type: ''// 分享類型,music、video或link,不填默認(rèn)為link 
  34.  dataUrl: ''// 如果type是music或video,則要提供數(shù)據(jù)鏈接,默認(rèn)為空 
  35.  success: function () { 
  36.  // 用戶確認(rèn)分享后執(zhí)行的回調(diào)函數(shù) 
  37.  //fxfunc(); 
  38.  }, 
  39.  cancel: function () { 
  40.  //alert("您取消了分享"); 
  41.  // 用戶取消分享后執(zhí)行的回調(diào)函數(shù) 
  42.  } 
  43. }); 
  44.  // config信息驗(yàn)證后會(huì)執(zhí)行ready方法,所有接口調(diào)用都必須在config接口獲得結(jié)果之后,config是一個(gè)客戶端的異步操作,所以如果需要在頁(yè)面加載時(shí)就調(diào)用相關(guān)接口,則須把相關(guān)接口放在ready函數(shù)中調(diào)用來(lái)確保正確執(zhí)行。對(duì)于用戶觸發(fā)時(shí)才調(diào)用的接口,則可以直接調(diào)用,不需要放在ready函數(shù)中。 
  45. }); 
  46.  
  47. function removeHTMLTag(str) { 
  48.  str = str.replace(/<//?[^>]*>/g,''); //去除HTML tag 
  49.  str = str.replace(/[ | ]*/n/g,'/n'); //去除行尾空白 
  50.  //str = str.replace(//n[/s| | ]*/r/g,'/n'); //去除多余空行 
  51.  str=str.replace(/&nbsp;/ig,'');//去掉&nbsp; 
  52.  return str; 
  53.  }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新余市| 兰州市| 理塘县| 肇东市| 赤水市| 襄垣县| 凤阳县| 马山县| 农安县| 永昌县| 玉门市| 乃东县| 迁安市| 揭西县| 栾城县| 名山县| 辽宁省| 吉安县| 天峨县| 望城县| 商城县| 囊谦县| 宽甸| 当雄县| 巴中市| 乾安县| 乌拉特后旗| 宾川县| 射洪县| 鄂州市| 灯塔市| 德庆县| 泰兴市| 安康市| 蚌埠市| 开封市| 天长市| 乡宁县| 泰顺县| 边坝县| 沈阳市|