//php页面
<?php
/**
* php curl 请求链接
* 当$post_data为空时使用GET方式发送
* @param unknown $url
* @param string $post_data
* @return mixed
*/
function curlSend($url,$post_data=""){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
if($post_data != ""){
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_data);
}
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
/**
* 调用接口获取 $ACCESS_TOKEN
* 微信缓存 7200 秒,这里使用thinkphp的缓存方法
* @param unknown $APP_ID
* @param unknown $APP_SECRET
* @return Ambigous <mixed, Thinkmixed, object>
*/
function get_accesstoken($APP_ID,$APP_SECRET){
$ACCESS_TOKEN = $APP_ID;
if($ACCESS_TOKEN ){
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$APP_ID."&secret=".$APP_SECRET;
$json = curlSend($url);
$data=json_decode($json,true);
$ACCESS_TOKEN = $data[access_token];
}
return $ACCESS_TOKEN;
}
/**
* 微信网页JSSDK 调用接口获取 $jsapi_ticket
* 微信缓存 7200 秒,这里使用thinkphp的缓存方法
* @param unknown $ACCESS_TOKEN
* @return Ambigous <mixed, Thinkmixed, object>
*/
function get_jsapi_ticket($ACCESS_TOKEN){
$jsapi_ticket = $ACCESS_TOKEN;
if($jsapi_ticket){
$url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$ACCESS_TOKEN."&type=jsapi";
$json = curlSend($url);
$data = json_decode($json,true);
$jsapi_ticket = $data[ticket];
}
return $jsapi_ticket;
}
/**
* 微信网页JSSDK 获取签名字符串
* 所有参数名均为小写字符
* @param unknown $nonceStr 随机字符串
* @param unknown $timestamp 时间戳
* @param unknown $jsapi_ticket
* @param unknown $url 调用JS接口页面的完整URL,不包含#及其后面部分
*/
function get_js_sdk($APP_ID,$APP_SECRET){
$protocol = (!empty($_SERVER[HTTPS]) && $_SERVER[HTTPS] !== off || $_SERVER[SERVER_PORT] == 443) ? "https://" : "http://";
$url = $protocol.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
$argu = array();
$argu[appId] = $APP_ID;
$argu[url] = $url;
//echo $argu[url];die();
$argu[nonceStr] = createNonceStr();
$argu[timestamp] = time();
$ACCESS_TOKEN = get_accesstoken($APP_ID, $APP_SECRET);
$argu[jsapi_ticket] = get_jsapi_ticket($ACCESS_TOKEN);
$string = "jsapi_ticket=".$argu[jsapi_ticket]."&noncestr=".$argu[nonceStr]."×tamp=".$argu[timestamp]."&url=".$argu[url];
$argu[signature] = sha1(trim($string));
return $argu;
}
/**
* 获取随机字符串
* @param number $length
* @return string
*/
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;
}
$confinfo =get_js_sdk("appid","APP_SECRET");
?>
<!--html页面-->
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script type="text/javascript">
//分享得到红包
var title = "<?php echo $tuan['title']?>";
var desc = "报恩的时候到了";
var link = "<?php echo $confinfo["url"];?>";
var imgUrl ="<?php echo $tuan['pic']?>";
var list = [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'hideMenuItems',
'showMenuItems',
'hideAllNonBaseMenuItem',
'showAllNonBaseMenuItem'
];
wx.config({
//debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '<?php echo $confinfo["appId"];?>',
timestamp: <?php echo $confinfo["timestamp"];?>,
nonceStr: '<?php echo $confinfo["nonceStr"];?>',
signature: '<?php echo $confinfo["signature"];?>',
jsApiList: list
});
wx.ready(function(){
wx.onMenuShareTimeline({//朋友圈
title: title,
link: link,
desc: desc,
imgUrl: imgUrl,
trigger: function (res) {
},
success: function (res) {
window.location.href="http://www.kocang.com/go.php?&x=t&id=<?php echo $tuan['sid'] ?>&y=py&openid=<?php echo $_SESSION['openid']?>";
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
wx.onMenuShareAppMessage({
title: title,
link: link,
desc: desc,
imgUrl: imgUrl,
success: function () {
window.location.href="http://www.kocang.com/go.php?&x=t&id=<?php echo $tuan['sid'] ?>&y=py&openid=<?php echo $_SESSION['openid']?>";
},
cancel: function () {
// 用户取消分享后执行的回调函数
}
});
});
</script>
php 微信js分享 项目示例 类已经封装
最新推荐文章于 2024-05-09 20:29:26 发布