请教大神帮我解决下微信jssdk签名接口签名错误的问题

查看: 1185|回复: 5
&&各位老大,我新买三部大神F2手机,一部是联通版的,两部是全网通的,但是这三部手机都有一个共同的毛病,就是装上微信以后再用打开其他软件的时候老是无故闪退,只要是关闭屏幕过一会再打开必须闪退,而且在打开微信发现微信功能不正常!我吧手机恢复到原厂也不行,吧酷管家去掉重新ROOT也不行,换了微信的版本也不行!请教下各位这是什么情况造成的?我问了酷派的厂家,他也搞不清楚,单是说肯定是软件冲突了,但是我吧其他的没用的软件都删掉了也不行。我装的微信版本和其他的软件在我的其他牌子的手机上多没事,就在这个酷派大神F2上面不行!请各位大神帮下小弟。谢谢了!
ROM的问题,等酷派解决啊
刷机看看,反正我没遇到过
来自手机版
你换张内存卡试试
这是cool ui特有的,默认锁屏清除第三方app,你只要在酷管家把软件加到白名单里面,这样就不会被清除不会闪退
楼上的应该是正解!如果是关闭屏幕闪退,多半是手机管理软件熄屏清除第三方软件,只要加入白名单就可以了!如果亮屏时使用不正常或者闪退,多半是ROM的问题,刷机能解决!说实话,CoolUI真不怎么样,推荐MIUI的ROM,比较成熟,论坛里MIUI的ROM包很多!
移动叔叔. 版权所有,专业的网络售后平台 (
商务合作||||微信JSSDK接入问题记录及源码 - 推酷
微信JSSDK接入问题记录及源码
今天应客户要求,把一个html5游戏的微信分享功能从第三方库切换到官方库了,
这其中碰到了一些问题,记录一下(服务端环境为PHP):
1. 开启openssl功能
Warning: file_get_contents(/user/xxxxx) [function.file-get-contents]: failed to open stream: No error in /xxx/php.php on line 2
遇到这样的错误的,是因为没有开启
功能,可以在php.ini中把
extension=php_openssl.dll
去掉,保存并重启(最好重启服务器)
的位置是在phpinfo中找的。
2. encodeURIComponent(url)
js端的要记得把当前页面的url编码,不然送给服务器的参数可能不对,最后导致签名出错。
最后附上相关的源码,包括服务端和javascript:
客户端javascript
* Author: lonewolf
// 微信分享的数据
var wxData = {
title : '好玩的游戏!',
desc : '大家快来玩!',
link : 'http://xxx',
imgUrl : 'http://xxx.png',
dataUrl: '',
success: function () {
//分享成功
//do something!
// 配置数据
wxConfigData={
debug: true, //调试的时候最好设为true,它每一步都会alert数据出来,让你知道出了什么问题
appId: 'xxx',
timestamp: , //随便填写一串数字
nonceStr: 'sMADlDUaGt6DsEc6', //随便一字符串
signature: '', //**这个要到服务器获取**
jsApiList: [ //用到的功能,自定义
'checkJsApi',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'onMenuShareQQ',
'onMenuShareWeibo'
// 获取签名
function wxGetSign () {
var data1={};
data1[&timestamp&]=wxConfigData[&timestamp&];
data1[&nonceStr&]=wxConfigData[&nonceStr&];
data1[&url&]=encodeURIComponent(location.href.split('#')[0]);
// alert(data1[&url&]);
// 自己找个ajax库
ajax.post(&wxGetSign.php?ran=&+Math.random(), data1, function (data) {
// 返回{sign:xxx}
// alert(data);
data=eval(&(&+data+&)&);
if(data[&sign&])
// 获取签名成功,初始化分享
wxConfigData[&signature&]=data[&sign&];
// 初始化,已经获得签名
function wxInit () {
// 配置参数
wx.config(wxConfigData);
wx.ready(function(){
addWeixinShareListening();
wx.error(function(res){
// alert(res);
// 分享绑定
function addWeixinShareListening () {
wx.onMenuShareTimeline(wxData);
wx.onMenuShareAppMessage(wxData);
wx.onMenuShareQQ(wxData);
wx.onMenuShareWeibo(wxData);
//执行,获取签名
wxGetSign();
相关的参数改一改,放到页面中就可以了,也可保存为一个js文件。
因为获取的access_token以及jsapi_ticket都有时间限制(7200秒后失效),且调用接口的次数有限制,所以我们得把得到的access_token和jsapi_ticket缓存到一个文件里,每次请求都检查是否已过期。
//设置时区
date_default_timezone_set('Asia/ShangHai');
session_start();
$returnObj = array(&sign& =& &&);
$appId=&xxx&;
$appSecret=&xxx&;
$timestamp = $_POST[&timestamp&];
$nonceStr = $_POST[&nonceStr&];
$url = $_POST[&url&];
if ($timestamp&&$nonceStr&&$url) {
// 获取access_token和jsapi_ticket
$access_token=&&;
$jsapi_ticket=&&;
// 保存到文件sign.txt
$filename=&sign.txt&;
$time=time();
// 先查找本地有没有保存
if (file_exists($filename)) {
$str=file_get_contents($filename);
$obj=json_decode($str,true);
if ($obj&&$obj[&access_token&]&&$obj[&jsapi_ticket&]&&$obj[&time&]) {
$lastTime=intval($obj[&time&]);
// 标准的是7200,要少一点
if ($time-$lastTime&7100) {
$access_token=$obj[&access_token&];
$jsapi_ticket=$obj[&jsapi_ticket&];
if ($access_token==&&) {
// 如果第一次或已过期则重新获取
$returnObj[&re&]=1; //这个只是测试用,看看是不是新请求
// 获取access_token
$tokenUrl=&https://api./cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}&;
$str=file_get_contents($tokenUrl);
// $returnObj[&token_data&]=$
$obj=json_decode($str,true);
if ($obj&&$obj[&access_token&]) {
$access_token=$obj[&access_token&];
// 获取jsapi_ticket
$ticketUrl=&https://api./cgi-bin/ticket/getticket?access_token={$access_token}&type=jsapi&;
$str=file_get_contents($ticketUrl);
// $returnObj[&ticket_data&]=$
$obj=json_decode($str,true);
if ($obj&&$obj[&errcode&]==0&&$obj[&ticket&]) {
$jsapi_ticket=$obj[&ticket&];
// 保存文件
$data=array(&access_token&=&$access_token,&jsapi_ticket&=&$jsapi_ticket,&time&=&$time);
$data=json_encode($data);
file_put_contents($filename, $data);
$returnObj[&error&]=&wrong ticket&;
$returnObj[&error&]=&wrong access_token&;
if ($access_token&&$jsapi_ticket) {
// $returnObj[&access_token&]=$access_
// $returnObj[&jsapi_ticket&]=$jsapi_
// 签名算法
$str=&jsapi_ticket={$jsapi_ticket}&noncestr={$nonceStr}&timestamp={$timestamp}&url={$url}&;
// $returnObj[&signstr&]=$
$sign=sha1($str);
$returnObj[&sign&]=$
echo json_encode($returnObj);
至此,整个过程就算完了。
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
没有分页内容
图片无法显示
视频无法显示
与原文不一致查看: 2312|回复: 6
接入JS SDK的时候遇到的问题
该用户从未签到主题帖子积分
新手上路, 积分 8, 距离下一级还需 42 积分
新手上路, 积分 8, 距离下一级还需 42 积分
Warning: fopen(access_token.json) []: failed to open stream: Permission denied in jssdk.php on line 79
Warning: fwrite() expects parameter 1 to be resource, boolean given in jssdk.php on line 80
Warning: fclose() expects parameter 1 to be resource, boolean given in jssdk.php on line 81
Warning: fopen(jsapi_ticket.json) []: failed to open stream: Permission denied in jssdk.php on line 56
Warning: fwrite() expects parameter 1 to be resource, boolean given in jssdk.php on line 57
Warning: fclose() expects parameter 1 to be resource, boolean given in jssdk.php on line 58
你们在接入JS接口的时候有没有遇到这个问题?
我用的是官方的DEMO,被这个问题困扰了好久啊。
哪位大神接过的可以告诉我如何解决吗?
上一篇:下一篇:
(164.41 KB, 下载次数: 2)
17:53 上传
该用户从未签到主题帖子积分
中级会员, 积分 484, 距离下一级还需 16 积分
中级会员, 积分 484, 距离下一级还需 16 积分
微齐()--专注于微信公众平台开发、微信营销、微信代运营,为企业提供全面的微信公众平台二次开发,推广,托管服务和线上线下O2O营销策划方案,全国诚招实力代理商,客服qq
TA的每日心情衰 21:51签到天数: 2 天连续签到: 1 天[LV.1]初来乍到主题帖子积分
金牌会员, 积分 2019, 距离下一级还需 981 积分
金牌会员, 积分 2019, 距离下一级还需 981 积分
fclose() expects parameter 1 to be resource, boolean given in jssdk.php on line 58
该用户从未签到主题帖子积分
新手上路, 积分 4, 距离下一级还需 46 积分
新手上路, 积分 4, 距离下一级还需 46 积分
&&在你需要加入微信分享功能的页面加入下列PHP代码(代码一):
& && && && && && & require_once &jssdk.php&;
& && && &$jssdk = new JSSDK(&你的appid&, &你的AppSecret&);& &//请在你的公众号,开发者中心获取。
& && && &$signPackage = $jssdk-&GetSignPackage();
& && && &?&
& && && &//我的理解是用你的APPID和秘钥,通过JSSDK.PHP文件进行数字签名,以便下文引用。
& &步骤四:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):
备注:支持使用 AMD/CMD 标准模块加载方法加载
& & 步骤五:通过config接口注入权限验证配置
& & wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
& & appId: '', // 必填,公众号的唯一标识
& & timestamp: , // 必填,生成签名的时间戳
& & nonceStr: '', // 必填,生成签名的随机串
& & signature: '',// 必填,签名,见附录1
& & jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
& && & //sample.php文件中提供的方法是如下代码:
该用户从未签到主题帖子积分
金牌会员, 积分 1646, 距离下一级还需 1354 积分
金牌会员, 积分 1646, 距离下一级还需 1354 积分
HOHO~~~~~~
& & & & & & & &
该用户从未签到主题帖子积分
金牌会员, 积分 1646, 距离下一级还需 1354 积分
金牌会员, 积分 1646, 距离下一级还需 1354 积分
真是好东西,顶啊!
TA的每日心情开心 09:25签到天数: 60 天连续签到: 2 天[LV.6]常住居民II主题帖子积分
论坛元老, 积分 4765, 距离下一级还需 9995234 积分
论坛元老, 积分 4765, 距离下一级还需 9995234 积分
网程微建站平台(,qq:)是网程公司独立开发的多用户智能微信公众号第三方管理平台(简称:网程微平台),企业无需购买域名、服务器、3分钟就可以在线建立自己的微信网站,现已开发80多种功能应用,近百套行业模版,360°整合CRM系统+网页展示+客户服务+吸粉宣传+收款成交五大服务,满足99%企业/商家互联网营销需求。
网程微建站:(微信公众号第三方平台),免费接入,另招全国代理商,QQ:
社区QQ达人
使用QQ帐号登录论坛的用户
Copyright &
& All Rights Reserved.
Powered by

我要回帖

更多关于 微信jssdk签名错误 的文章

 

随机推荐