700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > PHP微信公众平台开发高级篇--微信JS-SDK

PHP微信公众平台开发高级篇--微信JS-SDK

时间:2018-05-06 19:26:42

相关推荐

PHP微信公众平台开发高级篇--微信JS-SDK

实例

test.php

<?php/*** 微信JS-SDK* 定义:微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包* 开发步骤:* 1、绑定域名,“JS接口安全域名”* 2、引入JS文件* 3、通过config接口注入权限验证设置* 4、通过ready接口处理成功验证* 5、通过error接口处理失败验证*** 本次实例:微信分享接口:分享朋友圈,分享给朋友(接口即将废弃),拍照或从手机相册中选图接口,预览图片接口* 文档地址:https://mp./wiki?t=resource/res_main&id=mp1421141115*//*** 获取config配置选项中的参数:* 签名文档地址:https://mp./wiki?action=doc&id=mp1421141115&t=0.9420729498129117#62* 签名步骤:* 1.获取票据:jsapi_ticket,有效期7200秒,次数限制,做好缓存* 2.获取access_token* 3.用access_token调用https://api./cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi,换取jsapi_ticket,请求方式get**///获取jsapi_ticket/*$ch = curl_init();$url = "https://api./cgi-bin/ticket/getticket?access_token=".$tokenArr['access_token']."&type=jsapi";curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$outPut = curl_exec($ch);curl_close($ch);$arr = json_decode($outPut,true);print_r($arr);//HoagFKDcsGMVCIY2vOjf9l25caYhqwncbGyHpx4PqKNv9c4xlJHq3pwkkJ8w58wMh4xbDBcP395fgmPP-KT6UQ*///signature算法//步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1:$jsapi_ticket = 'HoagFKDcsGMVCIY2vOjf9l25caYhqwncbGyHpx4PqKMU7UW4nHmMWCD_dJZqqLLI1-4wvq4hYXanX5DvliAlHg';$timestamp = time();$nonceStr = "Wm3WZYTPz0wzccnW";//自定义,长度和类型都未限制,推荐16位数字和字母$url = "/share.html";$signature = "jsapi_ticket=".$jsapi_ticket."&noncestr=".$nonceStr."&timestamp=".$timestamp."&url=".$url;//必须按照jsapi_ticket,noncestr,timestamp,url顺序//步骤2.对string1进行sha1签名$signature = sha1($signature);echo $timestamp;echo "<hr>";echo $signature;//可能出现的原因:1.url invalid domain 解决方法:在JS接口安全域名出去除填写域名的http://部分

share.html

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewpoint" content="initial-scale=1.0;width=device-width"><title>微信分享实例</title><!--1、绑定域名--><!--2、引入JS文件--><script src="http://res./open/js/jweixin-1.2.0.js"></script></head><body><script>//3、通过config接口注入权限验证配置wx.config({debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。appId: 'wxc7991ed87e25dc13', // 必填,公众号的唯一标识timestamp: 1531890990, // 必填,生成签名的时间戳nonceStr: 'Wm3WZYTPz0wzccnW', // 必填,生成签名的随机串signature: 'ed933bc9ce7d7f2ea1a61fb5792c44d8d85dee14',// 必填,签名jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','chooseImage','previewImage','scanQRCode'] // 必填,需要使用的JS接口列表});//4、通过ready接口处理成功验证wx.ready(function () {wx.onMenuShareTimeline({//分享朋友圈title: '分享标题', // 分享标题link: '/test1.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '/img/bd_logo1.png?where=super', // 分享图标success: function () {// 用户点击了分享后执行的回调函数},cancle: function () {//用户取消分享后执行的回调函数}});wx.onMenuShareAppMessage({//分享给朋友title: '朋友标题', // 分享标题desc: '朋友描述', // 分享描述link: '/test1.php', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致imgUrl: '/img/bd_logo1.png?where=super', // 分享图标type: 'link', // 分享类型,music、video或link,不填默认为linkdataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空success: function () {// 用户点击了分享后执行的回调函数},cancle: function () {//用户取消分享后执行的回调函数}});});function show() {wx.chooseImage({//拍照或从手机相册中选图接口count: 2, // 默认9sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有success: function (res) {var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片wx.previewImage({//图片预览接口current: '', // 当前显示图片的http链接urls: [localIds[0],localIds[1]] // 需要预览的图片http链接列表});}});}function sacn() {//微信扫一扫wx.scanQRCode({needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有success: function (res) {var result = res.resultStr; // 当needResult 为 1 时,扫码返回的结果}});}//5、通过error接口处理失败验证wx.error(function (res) {alert(res);});</script><button onclick="show()">相册</button><button onclick="sacn()">扫一扫</button></body></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。