返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >小程序授权第三方平台
  • 612
分享到

小程序授权第三方平台

小程序微信php 2023-09-09 10:09:32 612人浏览 泡泡鱼
摘要

PHPnamespace app\common\lib\built;use app\platfORM\model\AppletGrant;class WxApplet{    public $platform_applet_config; //平台小程序配置信息    protected $platform_id; //平台id    protected $request;    public function __construct($platform_id)    {        $where = [            ['platform_id', '=', $platform_id]        ];        $fields = [            'authorizer_appid',            'authorizer_access_token',            'access_token_time',            'authorizer_refresh_token',            'user_desc',            'tag'        ];        $AppletGrantModel = new AppletGrant();        $this->platform_applet_config = $AppletGrantModel->getFindField($where, $fields);        if (empty($this->platform_applet_config)) {            echo JSON_encode(callBack('error', 'param_error', '小程序未授权'), jsON_UNESCAPED_UNICODE);            die();        }        $this->platform_id = $platform_id;        $this->request = new ThirdRequest();        $this->getAccessToken(); //获取令牌    }    //发布已通过审核的小程序    public function release()    {        $url = "https://api.weixin.qq.com/wxa/release?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlPostRaw($url, "{}");        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '发布小程序失败' . $result['errmsg']);        }        return callBack('success', 'success', '发布成功');    }        public function bindUser($wx_number)    {        $url = "Https://api.weixin.qq.com/wxa/bind_tester?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $data = [            'wechatid' => $wx_number,        ];        $result = $this->request->curlPostRaw($url, json_encode($data));        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '绑定失败' . $result['errmsg'], $result);        }        return callBack('success', 'success', '绑定成功');    }        public function modifyDomain($domain_name)    {        $url = "https://api.weixin.qq.com/wxa/modify_domain?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $data = [            "action" => "add",            "requestdomain" => ["https://" . $domain_name],            "uploaddomain" => ["https://" . $domain_name],            "downloaddomain" => ["https://" . $domain_name],        ];        $result = $this->request->curlPostRaw($url, json_encode($data, JSON_UNESCAPED_SLASHES));        $result = json_decode($result, true);        if ($result['errcode'] != 0 && $result['errcode'] != 85017) {            return callBack('error', 'param_error', '设置服务器域名失败' . $result['errmsg']);        }        return callBack('success', 'success', '设置服务器域名成功');    }    //查询指定发布审核单的审核状态    public function auditStatus($audit_id)    {        $data = [            'auditid' => $audit_id,        ];        $url = "https://api.weixin.qq.com/wxa/get_auditstatus?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlPostRaw($url, json_encode($data));        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '指定版本审核状态查询失败' . $result['errmsg']);        }        return callBack('success', 'success', '查询成功', $result);    }    //查询最新一次提交的审核状态    public function latestAuditStatus()    {        $url = "https://api.weixin.qq.com/wxa/get_latest_auditstatus?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlGet($url);        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '查询最新一次提交的审核状态失败' . $result['errmsg']);        }        return callBack('success', 'success', '查询成功', $result);    }    //小程序审核撤回    public function undoCodeAudit()    {        $url = "https://api.weixin.qq.com/wxa/undocodeaudit?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlGet($url);        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '撤销审核失败' . $result['errmsg'], $result);        } else {            return callBack('success', 'success', '撤销审核成功');        }    }        public function submitAudit($data)    {        $url = 'https://api.weixin.qq.com/wxa/submit_audit?access_token=' . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlPostRaw($url, json_encode($data, JSON_UNESCAPED_UNICODE));        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '提交审核失败');        }        return callBack('success', 'success', '提交审核成功', $result['auditid']);    }        public function commit($template_id)    {        $domain = 'https://' . config('super.domain_name');        $platform_id = $this->platform_id;        $authorizer_appid = $this->platform_applet_config['authorizer_appid'];        $data = [            'template_id' => $template_id,            "user_version" => "V" . $template_id,            'ext_json' => "{                \"extEnable\":true,                \"extAppid\": \"$authorizer_appid\",                \"ext\":{\"platform_id\":\"$platform_id\",\"appid\":\"$authorizer_appid\",\"domain\":\"$domain\"}                }",            "user_desc" => $this->platform_applet_config['user_desc'],        ];        $url = "https://api.weixin.qq.com/wxa/commit?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlPostRaw($url, json_encode($data, JSON_UNESCAPED_UNICODE));        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '上传失败', $result);        }        return callBack('success', 'success', '上传成功', $result);    }    //获取体验版二维码    public function getQRCode()    {        $url = "https://api.weixin.qq.com/wxa/get_qrcode?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlGet($url);        if (($result['errcode'] ?? 0) != 0) {            return callBack('error', 'param_error', '获取体验版二维码失败', $result);        }        return callBack('success', 'success', '获取成功', $result);    }    //获取审核时可填写的类目信息    public function getCateGory()    {        $url = "https://api.weixin.qq.com/wxa/get_category?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlGet($url);        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '获取授权小程序帐号的可选类目:' . $result['errmsg'], $result);        } else {            return callBack('success', 'success', '获取成功', $result['category_list']);        }    }    //获取已上传的代码的页面列表    public function getPage()    {        $url = 'https://api.weixin.qq.com/wxa/get_page?access_token=' . $this->platform_applet_config['authorizer_access_token'];        $result = $this->request->curlGet($url);        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '获取小程序的第三方提交代码的页面配置接口错误' . $result['errmsg'], $result);        } else {            return callBack('success', 'success', '获取成功', $result['page_list']);        }    }        public function privacySetting($param)    {        $url = 'https://api.weixin.qq.com/cgi-bin/component/setprivacysetting?access_token=' . $this->platform_applet_config['authorizer_access_token'];        $param = [            'owner_setting' => $param['owner_setting'],            'setting_list' => $param['setting_list']        ];        $result = $this->request->curlPostRaw($url, json_encode($param));        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '设置失败' . $result['errmsg']);        }        return callBack('success', 'success', '设置成功');    }    //设置小程序业务域名    public function setWEBViewDomain($domain_name)    {        $url = "https://api.weixin.qq.com/wxa/setwebviewdomain?access_token=" . $this->platform_applet_config['authorizer_access_token'];        $data = [            'action' => 'add',            'webviewdomain' => ['https://' . $domain_name]        ];        $data = json_encode($data);        $result = $this->request->curlPostRaw($url, $data);        $result = json_decode($result, true);        if ($result['errcode'] != 0) {            return callBack('error', 'param_error', '小程序业务域名设置失败');        }        return callBack('success', 'success', '设置成功');    }    //获取或刷新接口调用令牌    public function getAccessToken()    {        if ($this->platform_applet_config['access_token_time'] < time() || empty($this->platform_applet_config['authorizer_access_token'])) {            //令牌过期获取新令牌            //获取开放平台接口调用令牌            $WxOpenPlatformClass = new WxOpenPlatform();            $url = 'https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=' . $WxOpenPlatformClass->open_platform_config['component_access_token'];            $data = [                'component_appid' => $WxOpenPlatformClass->open_platform_config['component_appid'],                'authorizer_appid' => $this->platform_applet_config['authorizer_appid'],                'authorizer_refresh_token' => $this->platform_applet_config['authorizer_refresh_token']            ];            $data = json_encode($data);            $result = $this->request->curlPostRaw($url, $data);            file_put_contents('./z2.txt', $result);            $result = json_decode($result, true);            if (empty($result['authorizer_access_token'])) {                echo json_encode(callBack('error', 'param_error', '调用微信接口令牌刷新失败' . $result['errmsg']), JSON_UNESCAPED_UNICODE);                die();            }            $content = [                'authorizer_access_token' => $result['authorizer_access_token'],                'authorizer_refresh_token' => $result['authorizer_refresh_token'],                'access_token_time' => time() + $result['expires_in'] - 200            ];            $where = [                ['platform_id', '=', $this->platform_id]            ];            $AppletGrantModel = new AppletGrant();            $AppletGrantModel->updateInfo($where, $content);            $this->platform_applet_config['authorizer_access_token'] = $result['authorizer_access_token'];        }    }}

来源地址:https://blog.csdn.net/CS__Love/article/details/123482174

--结束END--

本文标题: 小程序授权第三方平台

本文链接: https://lsjlt.com/news/401281.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 小程序授权第三方平台
    ...
    99+
    2023-09-09
    小程序 微信 php
  • Django之第三方平台QQ授权登录的实现
    目录环境准备创建QQ互联应用创建应用模块定义QQ登录模型类执行迁移QQLoginTool库API使用说明QQ登录扫码页面认证获取openidopenid的判断处理openid是否绑定...
    99+
    2023-05-19
    Django 第三方平台QQ授权登录 Django 授权登录
  • 小程序第三方开发平台实例分析
    这篇文章主要介绍“小程序第三方开发平台实例分析”,在日常操作中,相信很多人在小程序第三方开发平台实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序第三方开发平台实例分析”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-26
  • 微信小程序第三方开发平台接入的方法
    本文小编为大家详细介绍“微信小程序第三方开发平台接入的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序第三方开发平台接入的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。微信第三方平台开发接入授权...
    99+
    2023-06-26
  • 实现 Google 第三方授权登录
    最近做项目要实现Google的第三方登录,这简单的记录一下。 目前Google的第三方登录有很多方案,且官方提供SDK方便接入。但是我这个项目同时要实现网页和客户端。所以选择了 Google OAuth 2.0 的方案。 当然,也可以 《...
    99+
    2023-10-07
    服务器 前端
  • 小程序如何获取第三方平台自定义的数据字段
    本文将为大家详细介绍“小程序如何获取第三方平台自定义的数据字段”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“小程序如何获取第三方平台自定义的数据字段”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体...
    99+
    2023-06-26
  • 【开源】多多客小程序-微信小程序SaaS平台源码-微信第三方服务商必备
    多多客小程序作为青否原班人马打造的微信小程序第三方SaaS平台,结合5年商城系统、3年小程序SaaS平台研发及运营经验,重点发力小程序个性化和各类营销玩法。多多客小程序开源版,基于doodoo.js,vue.js,Koa+Vue+Taro最...
    99+
    2023-06-04
  • 支付宝小程序授权登录 (Java 后台篇)
    支付宝小程序授权登录 (Java 后台篇) 开始 : 实现支付宝小程序授权登录功能, 本文主要是介绍支付宝小程序授权登录流程,与关键登录与处理代码. 流程 : 关键代码 : 1.获取用户...
    99+
    2023-10-05
    java 小程序 开发语言 支付宝小程序 授权登录
  • 微信小程序如何获取第三方平台自定义的数据字段
    这篇文章主要介绍了微信小程序如何获取第三方平台自定义的数据字段的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序如何获取第三方平台自定义的数据字段文章都会有所收获,下面我们一起来看看吧。wx.getExt...
    99+
    2023-06-26
  • vue实现GitHub的第三方授权方法示例
    目录创建OAuth Apps 获取code 获取access_token 获取用户信息 最近在完善我的博客系统,突然想到从原本临时填写 name + email 进行评论改成使用Gi...
    99+
    2024-04-02
  • Java中OAuth2.0第三方授权原理与实战
    目录RFC6749OAuth 2.0授权4大模式合同到期后的续约机制OAuth2.0第三方授权实战oauth-clientoauth-serverRFC6749 OAuth2的官方文...
    99+
    2024-04-02
  • uniapp-小程序登录授权框
    微信官方文档 不弹出授权框原因 因为版本问题,目前的最新的版本是不支持 wx.getUserInfo 去主动弹出授权框 只能引导用户去点击 butten 去授权 解决方法         我的思路是参考了其他的微信微信小程序, 就是跳转...
    99+
    2023-09-12
    uni-app 小程序
  • 微信小程序授权登录
    微信小程序—授权登录 一、小程序登录 登录流程时序 说明: 1.小程序端调用 wx.login() 获取临时登录凭证code ,并回传到开发者服务器。 2.服务器调用 code2Session 接口,换取 用户唯一标识 OpenID 和 ...
    99+
    2023-09-01
    微信小程序 小程序 微信 授权登录
  • 小程序如何获取第三方平台自定义数据字段的同步接口
    这篇“小程序如何获取第三方平台自定义数据字段的同步接口”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“小程序如何获取第三方平台自定义数据字段的同步接口”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,...
    99+
    2023-06-26
  • 小程序页面授权是什么
    小程序页面授权就是通过微信直接登录小程序,不需要在页面进行登录,并获取用户信息的操作。...
    99+
    2024-04-02
  • Node.js开发第三方微信公众平台
    一、写在前面的话   Node.js是一个开放源代码、跨平台的JavaScript语言运行环境,采用Google开发的V8运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高...
    99+
    2022-06-04
    第三方 公众 平台
  • 微信小程序如何授权登录
    小编给大家分享一下微信小程序如何授权登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!注:没有在微信开放平台做开发者资质认证的就...
    99+
    2024-04-02
  • 怎么取消微信小程序授权
    取消微信小程序授权的方法:1.打开微信,切换发现选项;2.进入“小程序”选项;3.选择小程序;4.点击“...”符号;5.选择“关于小程序”选项;6.点击“...”符号,点击“设置”选项;7.关闭“使用我的用户信息”选项;具体步骤如下:首先...
    99+
    2024-04-02
  • 怎么授权登录微信小程序
    本篇文章为大家展示了怎么授权登录微信小程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。授权登录的基本流程上图是微信小程序官网提供的授权登录基本流程图,这里我只从前端开发的角度来讲解一下该流程。通过...
    99+
    2023-06-08
  • 小程序授权登录流程详情步骤
    样式展示实例: 这个原理是: 我们开发的软件 ,调用微信app弹框,这个框主要是获取当前微信登录的用户的信息( 允许/取消) 允许就是允许我们开发的软件,获取微信的登录的用户信息 通俗: 获取微信用户的信息去登录 不允许 通俗: ...
    99+
    2023-08-31
    小程序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作