当前位置: 首页 > news >正文

长春标准网站建设wordpress商城主题手机版

长春标准网站建设,wordpress商城主题手机版,光明区住房和建设局网站,定制柜需要多少钱理解#xff1a;微信上传接口是拍照#xff0c;或者选择本地照片#xff0c;上传到微信的服务器#xff0c;获取到一个id#xff0c;通过token与这个id获取到图片#xff0c;保存到服务器即可。 效果 通过微信js接口#xff0c;调用底层程序。 需要引入js文件#xff0… 理解微信上传接口是拍照或者选择本地照片上传到微信的服务器获取到一个id通过token与这个id获取到图片保存到服务器即可。 效果   通过微信js接口调用底层程序。 需要引入js文件并进行配置。 script srchttp://res.wx.qq.com/open/js/jweixin-1.0.0.js/script wx.config({debug: false,appId: wxed7996e9ad58345d,timestamp: 1449717454,nonceStr: asdfasdfasdf,signature: b74fb4ab4790172d2ab7e58f0051a1523aaa4803,jsApiList: [chooseImage,uploadImage] }); 其中appId为微信公众平台idtimestamp为当前时间戳nonceStr为随机字符串signature为签名。 signature是最重要参数。需要通过很多步骤来获取。 首先获取access_token能存活两小时每天允许获取2000次。超过就不能获取了。 // 获取access_token 两小时有效private function get_access_token(){$appid C(oauth_config.appid);$appsecret C(oauth_config.appsecret);$url https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappid.$appid.secret.$appsecret;$rurl file_get_contents($url);$rurl json_decode($rurl,true);if(array_key_exists(errcode,$rurl)){return false;}else{$access_token $rurl[access_token];return $access_token;}} 然后获取jsticket // 获取jsticket 两小时有效private function getjsticket(){ // 只允许本类调用继承的都不可以调用公开调用就更不可以了$access_token $this-get_access_token();$url https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token.$access_token.typejsapi; // 两小时有效$rurl file_get_contents($url);$rurl json_decode($rurl,true);if($rurl[errcode] ! 0){return false;}else{$jsticket $rurl[ticket];return $jsticket;}} 然后获取signature它是由多个参数拼接加密形成的有实效性。 // 获取 signatureprivate function getsignature(){$noncestr ;$jsapi_ticket $this-getjsticket();$timestamp time();$url http://zhudianbao.diandodo.com/index.php?gOpenermMerchantaopen;$string1 jsapi_ticket.$jsapi_ticket.noncestr.$noncestr.timestamp.$timestamp.url.$url;$signature sha1($string1);return $signature;} 配置好之后就可以使用了。我用了两个功能一个是选择照片一个是上传照片。 function chooseImage(obj){// 选择张片wx.chooseImage({count: 1, // 默认9sizeType: [original, compressed], // 可以指定是原图还是压缩图默认二者都有sourceType: [album, camera], // 可以指定来源是相册还是相机默认二者都有success: function(res) {var localIds res.localIds; // 返回选定照片的本地ID列表localId可以作为img标签的src属性显示图片$(obj).attr(src, localIds);// 上传照片wx.uploadImage({localId: localIds,isShowProgressTips: 1,success: function(res) {serverId res.serverId;$(obj).next().val(serverId); // 把上传成功后获取的值附上}});}}); } 选择照片返回的localIds很有意思可以用于上传使用并且可以放在img的src属性中展示图片。 上传成功后获取一个serverId通过这个id可以下载上传到微信服务器上的图片文件把它保存到自己的服务器中。 // 获取图片地址private function getmedia($access_token,$media_id,$foldername){$url http://file.api.weixin.qq.com/cgi-bin/media/get?access_token.$access_token.media_id.$media_id;if (!file_exists(./Uploads/User_cert/.$foldername)) {mkdir(./Uploads/User_cert/.$foldername, 0777, true);}$targetName ./Uploads/User_cert/.$foldername./.date(YmdHis).rand(1000,9999)..jpg;$ch curl_init($url); // 初始化$fp fopen($targetName, wb); // 打开写入curl_setopt($ch, CURLOPT_FILE, $fp); // 设置输出文件的位置值是一个资源类型curl_setopt($ch, CURLOPT_HEADER, 0);curl_exec($ch);curl_close($ch);fclose($fp);return $targetName;} 防止图片名称相同加一个rand随机数因为在同一秒钟可能会上传多张照片。 $targetName ./Uploads/User_cert/.$foldername./.date(YmdHis).rand(1000,9999)..jpg; 这个serverId以表单的形式提交到服务器然后对其进行写入文件获取地址并把地址保存到服务器中。 微信的js与jquery不冲突可以共同使用。  附上牛逼的JSSDK类 ?php class JSSDK {private $appId;private $appSecret;public function __construct($appId, $appSecret) {$this-appId $appId;$this-appSecret $appSecret;}public function getSignPackage() {$jsapiTicket $this-getJsApiTicket();// 注意 URL 一定要动态获取不能 hardcode.$protocol (!empty($_SERVER[HTTPS]) $_SERVER[HTTPS] ! off || $_SERVER[SERVER_PORT] 443) ? https:// : http://;$url $protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI];$timestamp time();$nonceStr $this-createNonceStr();// 这里参数的顺序要按照 key 值 ASCII 码升序排序$string jsapi_ticket$jsapiTicketnoncestr$nonceStrtimestamp$timestampurl$url;$signature sha1($string);$signPackage array(appId $this-appId,nonceStr $nonceStr,timestamp $timestamp,url $url,signature $signature,rawString $string);return $signPackage; }private function createNonceStr($length 16) {$chars abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;$str ;for ($i 0; $i $length; $i) {$str . substr($chars, mt_rand(0, strlen($chars) - 1), 1);}return $str;}private function getJsApiTicket() {// jsapi_ticket 应该全局存储与更新以下代码以写入到文件中做示例$data json_decode(file_get_contents(jsapi_ticket.json));if ($data-expire_time time()) {$accessToken $this-getAccessToken();// 如果是企业号用以下 URL 获取 ticket// $url https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token$accessToken;$url https://api.weixin.qq.com/cgi-bin/ticket/getticket?typejsapiaccess_token$accessToken;$res json_decode($this-httpGet($url));$ticket $res-ticket;if ($ticket) {$data-expire_time time() 7000;$data-jsapi_ticket $ticket;$fp fopen(jsapi_ticket.json, w);fwrite($fp, json_encode($data));fclose($fp);}} else {$ticket $data-jsapi_ticket;}return $ticket;}private function getAccessToken() {// access_token 应该全局存储与更新以下代码以写入到文件中做示例$data json_decode(file_get_contents(access_token.json));if ($data-expire_time time()) {// 如果是企业号用以下URL获取access_token// $url https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid$this-appIdcorpsecret$this-appSecret;$url https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credentialappid$this-appIdsecret$this-appSecret;$res json_decode($this-httpGet($url));$access_token $res-access_token;if ($access_token) {$data-expire_time time() 7000;$data-access_token $access_token;$fp fopen(access_token.json, w);fwrite($fp, json_encode($data));fclose($fp);}} else {$access_token $data-access_token;}return $access_token;}private function httpGet($url) {$curl curl_init();curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_TIMEOUT, 500);// 为保证第三方服务器与微信服务器之间数据传输的安全性所有微信接口采用https方式调用必须使用下面2行代码打开ssl安全校验。// 如果在部署过程中代码在此处验证失败请到 http://curl.haxx.se/ca/cacert.pem 下载新的证书判别文件。curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);curl_setopt($curl, CURLOPT_URL, $url);$res curl_exec($curl);curl_close($curl);return $res;} } 本文转自TBHacker博客园博客原文链接http://www.cnblogs.com/jiqing9006/p/5038340.html如需转载请自行联系原作者
http://www.pierceye.com/news/335915/

相关文章:

  • 做seo网站优化多少钱网站开发客户哪里找
  • 做网站一定要云解析吗海南公司注册网站
  • 建站之家官网办公装修设计
  • 永康网站建设的公司wordpress 图片分类
  • 网站商务通弹出窗口图片更换设置wordpress4.9 多站点
  • 如何仿制一个网站注册商标设计
  • 网站建设属于什么岗位旅游网站设计模板
  • 自己做的网站怎么链接火车头采集软件开发模型是什么
  • 新网站怎么做才会被收录正品海外购网站有哪些
  • 广东手机网站建设品牌js制作网页计算器
  • 化隆网站建设公司学做网站多久
  • 网站域名如何查询上海室内设计公司哪家好
  • 电子书推送网站怎么做新做的网站如何
  • 网站建设图片怎么加水印电商平台网站建设功能介绍
  • 一个门户网站怎么做金坛网站建设哪家好
  • 大学网站建设图江苏廉政建设网站
  • 班级网站建设方案网页美工的设计要点
  • 微网站搭建流程做网站的广告语
  • 那个网站做外贸canvas做的网站
  • 学做视频的网站wordpress上传大附件
  • 怎么做网站卖产品黄埭网站建设
  • 娱乐网站 建站软件学校网站建设栏目
  • 做调研有哪些网站网站建设策划书
  • 旺道网站排名优化建设网站需要做的工作
  • 设计公司网站 唐山本地备份wordpress
  • 淘宝客网站建设多少钱app网站开发案例
  • vs2008不能新建网站个性手绘个人网站模板下载
  • 西安好的网站建设公司西安高端网站制作公司哪家好
  • 网站分享按钮网站运营建站优化专家
  • 网站微信建设运维经验分享用cms创建自己带数据库的网站和在本机搭建网站运行平台的心得体会