• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP处理微信SDK截取照片上传

php 搞代码 4年前 (2022-01-22) 11次浏览 已收录 0个评论

这篇文章主要介绍了PHP处理微信SDK截取照片上传,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

PHP端处理TP3.2框架

一:类名:

namespace Home\Controller;use Think\Controller;use  app\common\Curl;class ParentController extends Controller{    public function __construct(){        parent::__construct();        $this->appId = '你的appid';        $this->appSecret = '你的appSecret';        $openid = session('openid');        // session("openid",'ogC7U1XRM3ZOqjLZ99O2coJjYsrU');        if(!$openid){            $this->get_openid();        }    }

二:方法:

给客户端返回必要微信参数:

/**     * 给客户端返回必要微信参数     * @Author   TGHan     * @DateTime 2018-04-26     * @return   [type]     [description]     */    public function modifyinfor() {        $jsapiTicket = $this->getJsApiTicket();        // 注意 URL 一定要动态获取,不能 hardcode.        $protocol = (!empty($_SERVER[<strong style="color:transparent">¥本文来源gaodai#ma#com搞@@代~&码网^</strong><small>搞gaodaima代码</small>'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=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";        $signature = sha1($string);        $signPackage = array(          "appId"     => $this->appId,          "nonceStr"  => $nonceStr,          "timestamp" => $timestamp,          "url"       => $url,          "signature" => $signature,          "rawString" => $string        );        $this->assign('signPackage',$signPackage);        $this->display();    }    public 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;    }    public 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?type=jsapi&access_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;    }    public 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->appId&corpsecret=$this->appSecret";            $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$this->appId&secret=$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;    }    public 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;    }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP处理微信SDK截取照片上传
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址