微信js sdk demo公众号JS-SDK的图片上传接口为什么经常上传失败的问题我也遇到了,不知您解决没有

微信公众平台开发时遇到的两个js问题
详细问题描述如下:
1、关于微信JS-SDK使用微信测试账号测试过程中,在接口权限表中没有提供相应的绑定域名设置时,并且也没有两个经过认证过的正式公众号时(一个生产环境,一个测试环境),该如何进行测试,谢谢!
如果无法解决第1个问题的话,使用普通的测试账号进行测试时,则出下面第二个问题:
2、如果不使用域名,直接用ip进行JS-SDK调用config 接口的时候,提示invalid url domain错误,也就是《微信JS-SDK说明文档》附录5-常见错误及解决方法中出现的第一个问题。
如果使用域名,则接着出现第二个问题,invalid signature签名错误,(签名算法是已经通过页面工具进行校验的,签名算法是没问题的)。
但是通过调试发现如下的现象:
在pc或是手机端上的浏览器中,使用alert("location.href=\n"+location.href.split('#')[0]);调试出来的url是由域名组成的,如: 如果我在后台对url写死(即不用域名)进行生成签名,则又提示invalid url domain错误。
其他相似问题
相关参考资料thinkphp微信开发之jssdk图片上传并下载到本地服务器
随便写个方法&
public function test2(){
$Weixin = new \Weixin\Controller\BaseController();
$this-&assign('signPackage', $Weixin-&jssdk-&GetSignPackage());
$this-&display();
test2.html核心代码
&script type=&text/javascript& src=&__STATIC__/jquery-2.0.3.min.js&&&/script&
&script src=&http://res./open/js/jweixin-1.0.0.js&&&/script&
&form action=&{:U('doJoin')}&
method=&post&&
&h3 class=&title&&参赛人员照片:&/h3&
&img class=&preview& src=&{$vote.vote_pic|get_cover='thumb'}& alt=&&&
&if condition=&!$vote['status']& &&button class=&uploadImage& type=&button& id=&vote_pic&&点击上传(建议上传800*600的png,jpg,或者gif格式图片)&/button&&/if&
&input type=&hidden& name=&vote_pic&&
&button class=&bbon& type=&submit& id=&submit&&提交&/button&
wx.config({
debug: false,
appId: '&?php echo $signPackage[&appId&];?&',
timestamp: &?php echo $signPackage[&timestamp&];?&,
nonceStr: '&?php echo $signPackage[&nonceStr&];?&',
signature: '&?php echo $signPackage[&signature&];?&',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'chooseImage',
'previewImage',
'uploadImage',
'downloadImage'
wx.ready(function () {
// 5.1 拍照、本地选图
var images = {
localId: [],
serverId: []
// 5.3 上传图片
$(&.uploadImage&).click(function(){
var that =$(this);
images.localId = [];
wx.chooseImage({
success: function (res) {
images.localId = res.localI
if (images.localId.length == 0) {
alert('请先使用 chooseImage 接口选择图片');
if(images.localId.length & 1) {
alert('目前仅支持单张图片上传,请重新上传');
images.localId = [];
var i = 0, length = images.localId.
images.serverId = [];
function upload() {
wx.uploadImage({
localId: images.localId[i],
success: function (res) {
that.siblings('img.preview').attr('src',images.localId[0]);
// alert('已上传:' + i + '/' + length);
images.serverId.push(res.serverId);
that.siblings('input[type=hidden]').val(images.serverId[0]);
// alert( that.siblings('input[type=hidden]').val());
if (i & length) {
fail: function (res) {
alert(JSON.stringify(res));
$(&#submit&).click(function(){
type: 'post',
url: $(&form&).attr('action')
data : $(&form&).serialize(),
dataType: 'json',
success : function(data){
if(data.status){
window.location.href = data.
提交到服务器端 服务器端处理过程如下
public doJoin(){
if(IS_POST && $_POST['vote_pic']){
//提交过来的vote_pic是微信服务器端的图像资源id
$pic_id = $_POST['vote_pic'];
$return = array();
C('WEIXIN_UPLOAD') = './Uploads/Weixin/';//定义保存路径
$dir = realpath(C('WEIXIN_UPLOAD')).'/'.date('Y_m_d').'/';//为方便管理图片 保存图片时 已时间作一层目录作区分
if(!file_exists($dir)){
mkdir($dir,'0777');
$Weixin = new \Weixin\Controller\BaseController();
$pic_url = $Weixin-&WechatAuth-&mediaGet($pic_id); //获取服务器图片路径
$time = time().substr($pic_id, 9,3);
$filename = 'wx_'.$time.'.jpg';
//定义图片文件名
$Http = new \Org\Net\H
if($Http::curlDownload($pic_url,$dir.$filename)){//http图片
$this-&success('提交成功',U('index'));
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。收藏,211 浏览
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
发现之前的分享JS已经失效,查了一下资料,说是需要使用微信JS-SDK才能自定义分享。
在使用JS-SDK的时候,通过config接口注入权限验证配置一直报invalid signature签名错误。
微信官方提供的验证签名算法的链接如下:
对比了一下结果,相同的参数,得到的sign值是一样的。
我是使用ajax调用服务端接口实现加密和配置的,服务端直接返回config结构:
javascriptfunction GetWeiXinJsapiConfig() {
var url = encodeURIComponent(location.href.split('#')[0]);
alert('url is ' + url);
type: "POST",
url: "/XXX/GetWeiXinJsapiConfig",
data: "{'curUrl': '" + url +
contentType: "application/ charset=utf-8",
dataType: "json",
success: function(data) {
console.log(data.d);
var configData = $.parseJSON(data.d);
console.log('sig is ' + configData.signature);
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: configData.appid, // 必填,公众号的唯一标识
timestamp: configData.timestamp, // 必填,生成签名的时间戳
nonceStr: configData.noncestr, // 必填,生成签名的随机串
signature: configData.signature, // 必填,签名,见附录1
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
wx.ready(function(){
alert('OK---');
wx.onMenuShareAppMessage({
title: shareTitle, // 分享标题
desc: descContent, // 分享描述
link: lineLink, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
wx.error(function(res){
// alert("err" + res);
error: function(data) {
var json = $.parseJSON(data.responseText);
} catch (e) {
if (is_json) {
// add_json_error(data, json);
console.log(json.Message);
// Show the response text as plaintext.
var status = data.
var statusText = data.statusT
// If we've hit a 400 (Bad Request), show the responseText.
if (status === 400) {
statusText += ": " + data.responseT
console.log(status + " " + statusText);
complete: function() {
这是服务端返回的json:
javascript{
"appid":"wxab33b5f4670fdb6e",
"timestamp": "",
"noncestr": "WecWkTYHZw4WRR0f",
"signature":"b61dec1347cea32edfc9b0a"
已经调试了一天了,还是没有进展,求助。
不知道大家有没有遇到类似的问题,多谢。
下面是调试时的一些记录:
noncestr: "Nr1KncfjMAULdy2v"
jsapi_ticket: "sM4AOVdWfPE4DxkXGEs8VAM6b3b2DY72qJymJD2HDauxX1-fxTB1E-eWx3o1ZfI6kFZjMBHQP6NDrRTBlLeZbw"
timestamp:""
url: "http%3A%2F%%2Fwx%2Fpiao%2Fticket_841_test.html"
sign: "72bff8854ffda1da746f26a7613a"
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
5月6日 回答
服务端签名的时候有没有对参数'curUrl'做urldecode?
不要错过该问题的后续解决方案
如果你没找到答案,记得登录关注哦,大家会尽全力帮你解决的 ^___^
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
内容质量差,或不适合在本网站出现
讨论型问题
其他原因(请补充说明)
举报理由:
推广(招聘、广告、SEO 等)方面的内容
带有人身攻击、辱骂、仇恨等违反条款的内容
与已有问题重复(请编辑该提问指向已有相同问题)
内容质量差,或不适合在本网站出现
答非所问,不符合答题要求
其他原因(请补充说明)
补充说明:微信JS SDK 接口调用详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
微信JS SDK 接口调用详解
最​新05​年月​微​信​J​S​ ​接​口​调​用
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 jssdk分享功能实例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信