求教 微信JS-SDK 的接口文件配置问题,config 配置问题
config文件怎么配置,那些timestamp、nonceStr怎么填写??wx.config({debug:true,//开启调试模式,调用的所有api的返回值会在客...
config 文件怎么配置,那些timestamp、nonceStr 怎么填写??
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
appId 这是公众号ID好找。但是下面的什么时间戳,随机串 签名怎么弄??
难道是通过PHP程序(我们是使用PHP语言的),来进行生成 调用的?? 展开
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
appId 这是公众号ID好找。但是下面的什么时间戳,随机串 签名怎么弄??
难道是通过PHP程序(我们是使用PHP语言的),来进行生成 调用的?? 展开
1个回答
展开全部
<?php
/**
* @desc 微信用JS-JDK操作类
* @author loudc,2015-01-23
*/
class Wapi_My_Service_WechatJs{
static private $apilist = '';
/**
* @desc 返回JS数字签名
* @param string $wechatTYPE 微信公众号账号配置名
* @return string $shareurl 分享地址
*/
public static function GetWechatJsKey($wechatTYPE,$addurl){
if(!$wechatTYPE||!$addurl){
return false;
}
$WECHATTYPE=unserialize(WECHATTYPE);
if(!in_array($wechatTYPE,$WECHATTYPE)){
return false;
}
$regex = '@(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))@';
if(!preg_match($regex,$addurl)){
return false;
}
//$info=Wapi_My_Cache_WechatJs::GetWechatJsKeyFromCache($wechatTYPE,$addurl);
if($info){
return $info;
}else{
$info=self::RefreshWechatJsKey($wechatTYPE,$addurl);
return $info;
}
return false;
}
/**
* @desc 返回JS数字签名
* @param string $wechatTYPE 微信公众号账号配置名
* @return string $shareurl 分享地址
*/
public static function RefreshWechatJsKey($wechatTYPE,$addurl){
$appid=Wapi_My_Service_WechatOauth::GetWechatDataFronID($wechatTYPE,'appid');
$appsecret=Wapi_My_Service_WechatOauth::GetWechatDataFronID($wechatTYPE,'appsecret');
$url="
$appid&secret=$appsecret";
$access_token=Wapi_My_Service_WechatOauth::HttpCurl($url);
$access_token=json_decode($access_token,true);
$access_token=$access_token['access_token'];
$keyurl="
$access_token&type=jsapi";
$key=Wapi_My_Service_WechatOauth::HttpCurl($keyurl);
$key=json_decode($key,true);
$keyvalue=$key['ticket'];
$keytime=$key['expires_in']-2000;
$timestamp=time();
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$noncestr ="";
for ( $i = 0; $i < 16; $i++ )
{
$noncestr .= $chars[ mt_rand(0, strlen($chars) - 1) ];
}
$jsapi_ticket="jsapi_ticket=$keyvalue&noncestr=$noncestr×tamp=$timestamp&url=$addurl";
$signature=sha1($jsapi_ticket);
$info=array(
'appId'=>$appid ,
'timestamp'=>$timestamp,
'nonceStr'=>$noncestr,
'signature'=>$signature
);
Wapi_My_Cache_WechatJs::RefreshWechatJsKey($wechatTYPE,$addurl,$info,$keytime);
return $info;
}
/**
* @desc 返回JS代码
* @param string $wechatTYPE 微信公众号账号配置名
* @param string $addurl 分享地址
* @param string $string 处理文件
* @param string $title 分享标题
* @param string $desc 分享描述
* @param string $link 分享地址
* @param string $imgUrl 分享图片
* @param string $jscode JS代码
*/
public static function GetWechatJs($wechatTYPE,$string,$title,$desc,$imgUrl){
$addurl="
$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$info=self::GetWechatJsKey($wechatTYPE,$addurl);
$link=Wapi_My_Service_WechatLogin::GetShareUrl($wechatTYPE,$addurl,$string);
$jscode="
<script src='
<script>
wx.config({
debug:false,
appId: '".$info['appId']."',
timestamp: '".$info['timestamp']."',
nonceStr: '".$info['nonceStr']."',
signature: '".$info['signature']."',
jsApiList: [
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo',
]
});
wx.ready(function(){
wx.onMenuShareTimeline({
title: '".$title."',
desc: '".$desc."',
link: '".$link."',
imgUrl: '".$imgUrl."',
});
wx.onMenuShareAppMessage({
title: '".$title."',
desc: '".$desc."',
link: '".$link."',
imgUrl: '".$imgUrl."',
});
wx.onMenuShareQQ({
title: '".$title."',
desc: '".$desc."',
link: '".$link."',
imgUrl: '".$imgUrl."',
});
wx.onMenuShareWeibo({
title: '".$title."',
desc: '".$desc."',
link: '".$link."',
imgUrl: '".$imgUrl."',
});
});
wx.error(function(res){
});
</script>
";
return $jscode;
}
}
?>
原来写的一个返回JS代码的PHP类,
Storm代理
2023-08-29 广告
2023-08-29 广告
"StormProxies是全球大数据IP资源服务商,其住宅代理网络由真实的家庭住宅IP组成,可为企业或个人提供满足各种场景的代理产品。点击免费测试(注册即送1G流量)StormProxies有哪些优势?1、IP+端口提取形式,不限带宽,I...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询