config:invalid url domain
<?php
// 本類由系統(tǒng)自動生成,僅供測試用途
class IndexAction extends Action {
? ? public function index(){
$nonce ? ? = $_GET['nonce'];
$token ? ? = 'ceshi';
$timestamp = $_GET['timestamp'];
$echostr ? = $_GET['echostr'];
$signature = $_GET['signature'];
//形成數組,然后按字典序排序
$array = array();
$array = array($nonce, $timestamp, $token);
sort($array);
//拼接成字符串,sha1加密 ,然后與signature進行校驗
$str = sha1( implode( $array ) );
if( $str ?== $signature && $echostr ){
//第一次接入weixin api接口的時候
echo ?$echostr;
exit;
}else{
}
? ? }
public ? ? ? function getWxAccessToken(){
? ? ? ? ? ? ? ?//1.請求url地址
? ? ? ? $appid = 'wx6d648a454480c954';
? ? ? ? $appsecret = '065f2c294b40a180c49104491c04cb65';
? ? ? ? $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
? ? ? ? ? ? ? ?//2初始化
? ? ? ? $ch = curl_init();
? ? ? ? ? ? ? ?//3.設置參數
? ? ? ? curl_setopt($ch , CURLOPT_URL, $url);
? ? ? ? curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
? ? ? ? ? ? ? ? ?curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查 ?
?
? ? ? ? ? ? ? ? ?curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);?
? ? ? ? ? ? ? ?//4.調用接口?
? ? ? ? ? ? ? ? ?$res = curl_exec($ch);
? ? ? ? ? ? ? ?//5.關閉curl
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?curl_close( $ch );
? ? ? ? ? ? ? ? ?if( curl_errno($ch) ){
? ? ? ? ? ? ? ? ? ? var_dump( curl_error($ch) );
? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ? ?$arr = json_decode($res, true);
? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ?return $arr["access_token"];
?
?
? ? ? ? ? ? ?}
?
public function http_curl($url,$type='get',$res='json',$arr=''){
?
? ? ? ? ? ?//1.初始化curl
? ? ? ? ? ?$ch ?=curl_init();
? ? ? ? ? ?//2.設置curl的參數
? ? ? ? ? ?curl_setopt($ch,CURLOPT_URL,$url);
? ? ? ? ? ?curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
? ? ? ? ? ? ? curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳過證書檢查 ?
?
? ? ? ? ? curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);?
? ? ? ? ? ?if($type == 'post'){
? ? ? ? ? ? ? ?curl_setopt($ch,CURLOPT_POST,1);
? ? ? ? ? ? ? ?curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);
? ? ? ? ? ?}
? ? ? ? ? ?//3.采集
? ? ? ? ? ?$output =curl_exec($ch);
? ? ? ? ? ?echo (curl_error($ch));
? ? ? ? ? ?//4.關閉
? ? ? ? ? ?curl_close($ch);
? ? ? ? ? ?if($res=='json'){
? ? ? ? ? ? ? ?if(curl_error($ch)){
? ? ? ? ? ? ? ? ? ?//請求失敗,返回錯誤信息
?
? ? ? ? ? ? ? ? ? ?return curl_error($ch);
? ? ? ? ? ? ? ?}else{
? ? ? ? ? ? ? ? ? ?//請求成功,返回錯誤信息
?
? ? ? ? ? ? ? ? ? ?return json_decode($output,true);
? ? ? ? ? ? ? ?}
? ? ? ? ? ?}
? ? ? ? ??
? ? ? ?} ?
public ? function getJsApiTicket(){
? ? ? ? //如果session中保存有效的jsapi-ticket?
? ? ? ? if($_SESSION['jsapi-ticket-expire_time']>time() && $_SESSION['jsapi-ticket']){
? ? ? ? ? ? $jsapi=$_SESSION['jsapi-ticket'];
? ? ? ? ? ?
? ? ? ? }else{
? ? ? ? ??
? ? ? ? ? ? $access_token= $this->getWxAccessToken();
? ? ? ? ? ? var_dump($access_token);
? ? ? ? ? ? $url='https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$access_token.'&type=jsapi';
? ? ? ? ? ? $re=$this->http_curl($url);
? ? ? ? ? ? $jsapi=$re['ticket'];
? ? ? ? ? ? $_SESSION['jsapi-ticket']=$jsapi;
? ? ? ? ? ? $_SESSION['jsapi-ticket-expire_time']=time()+7000;
? ? ? ? }
? ? ? ? var_dump($access_token);
? ? ? ? ? ? return $jsapi;
? ? }
? /* ?public ? function a(){
? ? ? ? //如果session中保存有效的jsapi-ticket?
? ? ? ? if($_SESSION['expire_time']>time() && $_SESSION['access_token']){
? ? ? ? ? ? $access_token=$_SESSION['access_token'];
? ? ? ? }else{
? ? ? ? ? ? ?
?
? ? ? ? ? ? $appid = 'wxd1157c516b3578d8';
? ? ? ? ? ? $appsecret = ?'26afef5b19e1ebfc3382604908460aa9';
? ? ? ? ? ? $url= "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;
? ? ? ? ? ? $re=$this->http_curl($url);
? ? ? ? ? ? $re = json_decode($re, true);
? ? ? ? ? ? $access_token=$re['access_token'];
? ? ? ? ? ? var_dump($access_token);
? ? ? ? ? ? $_SESSION['access_token']=$access_token;
? ? ? ? ? ? $_SESSION['expire_time']=time()+7200;
? ? ? ? }
? ? ? ??
? ? ? ? ?
? ? ? ? ? ? return $access_token;
? ? }*/
? ? //獲取16位隨機碼
? public ?function getRandCode(){
? ? ? ? $num=16;
? ? ? ? $array=array(
? ? ? ? ? ? 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
? ? ? ? ? ? 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
? ? ? ? ? ? '0','1','2','3','4','5','6','7','8','9'
? ? ? ? );
? ? ? ? $tmpstr='';
? ? ? ? $max=count($array);
? ? ? ? for($i=1;$i<=$num;$i++){
? ? ? ? ? ? $key = rand(0,$max-1);
? ? ? ? ? ? $tmpstr.=$array[$key];
? ? ? ? };
? ? ? ? ??
? ? ? ? ??
? ? ? ? return $tmpstr;
? ? }
? ? //js-sdk ?分享朋友圈
?public ? ?function share(){
? ? ? ? //獲取jsapi-ticket 票據
? ? ? ? $jsapi=$this->getJsApiTicket();
? ? ? ? $timestamp=time();
? ? ? ? $nonceStr=$this->getRandCode();
? ? ? ??
? ? ? ?
? ? ? ? ? $url = 'http://www.cqtzty.com/tp/admin.php?m=index&a=share';
? ? ? ? ?
? ? ? ? //獲取signature
? ? ? ? $signature='jsapi_ticket='.$jsapi.'&noncestr='.$nonceStr.'×tamp='.$timestamp.'&url='.$url;
?
? ? ? ? $signature=sha1($signature);
? ? ? ? $this->assign('timestamp',$timestamp);
? ? ? ? $this->assign('nonceStr',$nonceStr);
? ? ? ? $this->assign('signature',$signature);
? ? ? ? $this->display();
? ? }
??
}
<!doctype html>
<html>
<head>
? ? <title>微信js分享接口</title>
? ? <meta name="viewpoint" content = "initial-scale=1.0;width=device-width"/>
? ? <meta http-equiv="content" content = "text/html;charset=utf-8"/>
? ? <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
? ? <uses-permission android:name="android.permission.INTERNET"/>
</head>
<body>
? ??
? ?<script>
?
? ?wx.config({
? ??
? ? debug: true, ?
? ? ? ? appId: 'wx6d648a454480c954', // 必填,公眾號的唯一標識
? ? ? ? timestamp:'{$timestamp}' , // 必填,生成簽名的時間戳
? ? ? ? nonceStr: '{$nonceStr}', // 必填,生成簽名的隨機串
? ? ? ? signature: '{$signature}',// 必填,簽名,見附錄1
? ? ? ? jsApiList: [
? ? ? ? "onMenuShareTimeline",
? ? ? ? "onMenuShareAppMessage"
? ? ? ? ] // 必填,需要使用的JS接口列表,所有JS接口列表見附錄2
? ? });
?
? ?wx.ready(function(){
? ? ? ? //分享到朋友圈
? ? ? ? alert(location.href.split('#')[0]);
?
? ? ? ? wx.onMenuShareTimeline({
? ? ? ? ? ?title: 'test1', // 分享標題
? ? ? link: 'http://www.baidu.com', // 分享鏈接
? ? imgUrl: 'https://www.baidu.com/img/bd_logo1.png', // 分享圖標
? ? success: function () {?
? ? ? ? // 用戶確認分享后執(zhí)行的回調函數
? ? ? ? alert("success");
? ? },
? ? cancel: function () {?
? ? ? ? // 用戶取消分享后執(zhí)行的回調函數
? ? ? ? alert("cancle");
? ? }
});
? ? //分享給朋友
? ? wx.onMenuShareAppMessage({
? ? title: 'test1', // 分享標題
? ? desc: 'test xjy', // 分享描述
? ? link: 'http://www.baidu.com', // 分享鏈接
? ? imgUrl: 'https://www.baidu.com/img/bd_logo1.png', // 分享圖標
? ? type: 'link', // 分享類型,music、video或link,不填默認為link
? ? dataUrl: '', // 如果type是music或video,則要提供數據鏈接,默認為空
? ? success: function () {?
? ? ? ? // 用戶確認分享后執(zhí)行的回調函數
?
? ? },
? ? cancel: function () {?
? ? ? ? // 用戶取消分享后執(zhí)行的回調函數
? ? }
});
});
? ?wx.error(function(res){
? ? // config信息驗證失敗會執(zhí)行error函數,如簽名過期導致驗證失敗,具體錯誤信息可以打開config的debug模式查看,也可以在返回的res參數中查看,對于SPA可以在這里更新簽名。
? ? alert("失敗");
});
? ?</script>
</body>
</html>