开发微信公众号遇到的一些问题

在开发微信公众号遇到的一些问题:

1 验证签名:

需要引入的文件:
<script src="${rc.contextPath}/js/app/public/sha1.js"></script> //sha1加密 
<script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script>//微信js
参与加密的串:
 var shareUrl = window.location.href;//当前页面的url
var access_token = document.getElementById("tokenID").value;//token值,这是是后台传过来的
var jsapi_ticket = document.getElementById("ticket").value;//ticket值,后台传过来的
var appSecret = '02101369fa20119c6ca53dd8bacf7a8e';//appSecret
var appId = "wx90c26397dd5fb881";//appId
var curTime = ((new Date()).valueOf()).toString();
var timestamp = curTime.substring(0, 10);//当前时间戳, 10位,
var nonceStr = "Wm3WZYTPz0wzccnW";//nonceStr 值
var str = 'jsapi_ticket=' + jsapi_ticket + '&noncestr=' + nonceStr + '×tamp=' + timestamp + '&url=' + shareUrl;//拼接加密串,注意大小写
var signature = hex_sha1(str);//加密后的串


  
微信验证:
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: appId, // 必填,公众号的唯一标识
timestamp: timestamp, // 必填,生成签名的时间戳
nonceStr: nonceStr, // 必填,生成签名的随机串
signature: signature, // 必填,签名,见附录1
jsApiList: ['chooseImage', 'uploadImage', 'checkJsApi', 'previewImage', 'openCard', 'onMenuShareTimeline', 'onMenuShareAppMessage','onMenuShareQQ','chooseWXPay'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});



检测api是否可用:
wx.checkJsApi({
jsApiList: ['chooseImage', 'uploadImage', 'checkJsApi', 'previewImage', 'openCard', 'onMenuShareTimeline', 'onMenuShareAppMessage','onMenuShareQQ','chooseWXPay'], // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
success: function(res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// console.log("需要检测的JS接口:" + res);
}
});

下面是做过的分享:

wx.ready(function() {

//分享到朋友圈
wx.onMenuShareTimeline({
title: shareTitle, // 分享标题
link: shareUrl, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
success: function() {
// 用户确认分享后执行的回调函数
shareCalculate("2",pid,"2");
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
//分享给个人
wx.onMenuShareAppMessage({
title: shareTitle, // 分享标题
desc: summary, // 分享描述
link: shareUrl, // 分享链接
imgUrl: imgUrl, // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function() {
// 用户确认分享后执行的回调函数
shareCalculate("2",pid,"1");
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
//分享到qq
wx.onMenuShareQQ({
title: shareTitle, // 分享标题
desc: summary, // 分享描述
link: shareUrl, // 分享链接
imgUrl: imgUrl, // 分享图标
success: function() {
// 用户确认分享后执行的回调函数
shareCalculate("2",pid,"3");
},
cancel: function() {
// 用户取消分享后执行的回调函数
}
});
});


微信支付:
wx.chooseWXPay({
		"appId": appId, //公众号名称,由商户传入     
		"timestamp": timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
		"nonceStr": uuid, // 支付签名随机串,不长于 32 位
		"package": order, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
		"signType": "MD5", // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
		"paySign": paySign, // 支付签名
		success: function(res) {
			// 支付成功后的回调函数
		},
		cancel: function(res) {
			//支付取消
		},
		error: function(res) {
			//支付失败
		}
	});




问题1: 使用前,需要在公众号里面将域名添加进去,可以查看微信文档步骤进行添加;
问题2: 验证时要注意大小写;
问题3:支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符;签名方式,默认为'SHA1',使用新版支付需传入'MD5'



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值