微信js sdk 授权上传头像下载代码片段和注意事项

来源:互联网 发布:网络摄像机客户端 编辑:程序博客网 时间:2024/06/09 18:19

     /*
 * 描述:当前页授权
 * @param url   例:index.html / 如果有参数,需加密index.html?id=1
    */

1、对需要运用js sdk的页面授权

getSignature("文件名.html");  

/*这里的getSignature为调用后台接口获取微信js sdk需要传的参数,不可直接复制!!!*/

function getSignature(url) {
ajaxpubilc('/weChatUtil/getSignature', {pageUrl:url}, $ajaxPOST, setSignature);
}

      /* 注入权限,验证配置 */
function setSignature(data) {
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: data.data.appId, // 必填,公众号的唯一标识
timestamp: data.data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.data.noncestr, // 必填,生成签名的随机串
signature: data.data.signature,// 必填,签名,见附录1
jsApiList: ['scanQRCode','chooseImage','uploadImage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
//checkJsApi();
//getScanQRCode();
});
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
alert("微信授权失败");
});
}

/* 判断当前客户端版本是否支持指定JS接口 */
function checkJsApi() {
wx.checkJsApi({
jsApiList: ['scanQRCode'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res) {
/*alert(res.errMsg);*/
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
}
});
}

2、在页面某个需要触发的点加事件触发微信接口,代码片段如下

/* 调用微信扫一扫 */
function getScanQRCode() {
wx.scanQRCode({
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果
}
});
}
/*下载多媒体文件*/
function mediaget(serverId){
ajaxpubilc('/weChatUtil/downloadByMediaId', {media_id:serverId}, $ajaxPOST, function(res) {
if (res.success) {
$('.onIdcard').hide();
alert(res.data);
tssucc(res.data);
}
});
}
/*调用微信摄像头*/
function getcameraImage() {
wx.chooseImage({
   count: 1, // 默认9
   sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
   sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
   success: function (res) {
       var localIds = res.localIds.toString(); // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
       upload(localIds);
   }
});
}
/*上传*/
function upload(localIds){
wx.uploadImage({
   localId: localIds, // 需要上传的图片的本地ID,由chooseImage接口获得
   isShowProgressTips: 1, // 默认为1,显示进度提示
   success: function (res) {
    var serverId = res.serverId.toString(); // 返回图片的服务器端ID
       mediaget(serverId);
   }
});
}


注意事项:上传接口需要localIds转为字符串 res.localIds.toString();,上传后只有三天有效期,长时间使用需下载到自己服务器上,下载多媒体接口结果为文件需要后台处理下载,所以前端只要把media_id传个后台处理下载到服务器就好

以上为原创,有错误的地方请评论或者私信,会后续更正,感谢查看!

1 0
原创粉丝点击