195 lines
11 KiB
PHP
195 lines
11 KiB
PHP
<?php
|
||
|
||
namespace app\api\controller;
|
||
|
||
use addons\epay\library\Service;
|
||
use app\common\controller\Api;
|
||
use app\common\model\style\HomeImages;
|
||
|
||
/**
|
||
* 微信工具类接口
|
||
*/
|
||
class WechatUtil extends Api
|
||
{
|
||
protected $noNeedLogin = ['scheme','link',"codeunlimit"];
|
||
protected $noNeedRight = ['*'];
|
||
|
||
|
||
public function index()
|
||
{
|
||
$this->success('请求成功');
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(微信小程序生成url-scheme)
|
||
* @ApiSummary(微信小程序生成url-scheme)
|
||
* @ApiRoute(/api/wechat_util/scheme)
|
||
* @ApiMethod(POST)
|
||
* @ApiParams (name="path", type="string", required=false, description="通过 scheme 码进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query。path 为空时会跳转小程序主页。")
|
||
* @ApiParams (name="query", type="string", required=false, description="通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符")
|
||
* @ApiParams (name="env_version", type="string",required=false , description="默认值release。要打开的小程序版本。正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。")
|
||
* @ApiParams (name="expire_time", type="number",required=false , description="到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为30天。is_expire 为 true 且 expire_type 为 0 时必填")
|
||
* @ApiParams (name="expire_type", type="number",required=false , description="默认值0,到期失效的 scheme 码失效类型,失效时间:0,失效间隔天数:1")
|
||
* @ApiParams (name="expire_interval", type="number",required=false , description="到期失效的 scheme 码的失效间隔天数。生成的到期失效 scheme 码在该间隔时间到达前有效。最长间隔天数为30天。is_expire 为 true 且 expire_type 为 1 时必填")
|
||
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
||
* @ApiReturnParams (name="openlink", type="string", required=true, sample="生成的小程序 scheme 码")
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function scheme() {
|
||
$q_params = [];
|
||
$path = $this->request->post('path/s','');
|
||
$query = $this->request->post('query/s','');
|
||
$env_version = $this->request->post('env_version/s','release');
|
||
$expire_time = $this->request->post('expire_time/d',0);
|
||
$expire_type = $this->request->post('expire_type/d',0);
|
||
$expire_interval = $this->request->post('expire_interval/d',0);
|
||
$jump_wxa = compact('env_version');
|
||
if($path)$jump_wxa["path"] = $path;
|
||
if($query)$jump_wxa["query"] = $query;
|
||
if($expire_time)$q_params["expire_time"] = $expire_time;
|
||
if($expire_interval)$q_params["expire_interval"] = $expire_interval;
|
||
$q_params["expire_type"] = $expire_type;
|
||
$q_params["jump_wxa"] = $jump_wxa;
|
||
|
||
|
||
|
||
try {
|
||
// 实例对应的接口对象
|
||
$scheme = new \WeMini\Scheme(Service::wechatConfig());
|
||
$res= $scheme->create($q_params);
|
||
|
||
} catch (\Exception $e){
|
||
// Log::log($e->getMessage());
|
||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||
}
|
||
$this->success('生成成功', $res);
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(微信小程序生成url-link)
|
||
* @ApiSummary(微信小程序生成url-link)
|
||
* @ApiRoute(/api/wechat_util/link)
|
||
* @ApiMethod(POST)
|
||
* @ApiParams (name="path", type="string", required=false, description="通过 URL Link 进入的小程序页面路径,必须是已经发布的小程序存在的页面,不可携带 query 。path 为空时会跳转小程序主页")
|
||
* @ApiParams (name="query", type="string", required=false, description="通过 scheme 码进入小程序时的 query,最大1024个字符,只支持数字,大小写英文以及部分特殊字符")
|
||
* @ApiParams (name="env_version", type="string",required=false , description="默认值release。要打开的小程序版本。正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。")
|
||
* @ApiParams (name="expire_time", type="number",required=false , description="到期失效的 scheme 码的失效时间,为 Unix 时间戳。生成的到期失效 scheme 码在该时间前有效。最长有效期为30天。is_expire 为 true 且 expire_type 为 0 时必填")
|
||
* @ApiParams (name="expire_type", type="number",required=false , description="默认值0,到期失效的 scheme 码失效类型,失效时间:0,失效间隔天数:1")
|
||
* @ApiParams (name="cloud_env", type="string",required=false , description="云开发静态网站自定义 H5 配置参数: 云开发环境")
|
||
* @ApiParams (name="cloud_domain", type="string",required=false , description="云开发静态网站自定义 H5 配置参数: 静态网站自定义域名,不填则使用默认域名")
|
||
* @ApiParams (name="cloud_path", type="string",required=false , description="云开发静态网站自定义 H5 配置参数: 云开发静态网站 H5 页面路径,不可携带 query")
|
||
* @ApiParams (name="cloud_query", type="string",required=false , description="云开发静态网站自定义 H5 配置参数: 云开发静态网站 H5 页面 query 参数,最大 1024 个字符,只支持数字,大小写英文以及部分特殊字符")
|
||
* @ApiParams (name="cloud_resource_appid", type="string",required=false , description="云开发静态网站自定义 H5 配置参数: 第三方批量代云开发时必填,表示创建该 env 的 appid (小程序/第三方平台)")
|
||
* @ApiReturnParams (name="code", type="integer", required=true, sample="0")
|
||
* @ApiReturnParams (name="url_link", type="string", required=true, sample="生成的小程序 URL Link")
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function link() {
|
||
$q_params = [];
|
||
$path = $this->request->post('path/s','');
|
||
$query = $this->request->post('query/s','');
|
||
$env_version = $this->request->post('env_version/s','release');
|
||
$expire_time = $this->request->post('expire_time/d',0);
|
||
$expire_type = $this->request->post('expire_type/d',0);
|
||
$expire_interval = $this->request->post('expire_interval/d',0);
|
||
$cloud_env = $this->request->post('cloud_env/s',0);
|
||
$cloud_domain = $this->request->post('cloud_domain/s',0);
|
||
$cloud_path = $this->request->post('cloud_path/s',0);
|
||
$cloud_query = $this->request->post('cloud_query/s',0);
|
||
$cloud_resource_appid = $this->request->post('cloud_resource_appid/s',0);
|
||
|
||
$cloud_base = [];
|
||
if($cloud_env)$cloud_base["env"] = $cloud_env;
|
||
if($cloud_domain)$cloud_base["domain"] = $cloud_domain;
|
||
if($cloud_path)$cloud_base["path"] = $cloud_path;
|
||
if($cloud_query)$cloud_base["cloud_query"] = $cloud_query;
|
||
if($cloud_resource_appid)$cloud_base["resource_appid"] = $cloud_resource_appid;
|
||
|
||
if($path)$q_params["path"] = $path;
|
||
if($query)$q_params["query"] = $query;
|
||
if($env_version)$q_params["env_version"] = $env_version;
|
||
|
||
|
||
if($expire_time)$q_params["expire_time"] = $expire_time;
|
||
if($expire_interval)$q_params["expire_interval"] = $expire_interval;
|
||
if($expire_type)$q_params["expire_type"] = $expire_type;
|
||
if($cloud_base)$q_params["cloud_base"] = $cloud_base;
|
||
|
||
try {
|
||
// 实例对应的接口对象
|
||
$scheme = new \WeMini\Scheme(Service::wechatConfig());
|
||
$res= $scheme->urlLink($q_params);
|
||
|
||
} catch (\Exception $e){
|
||
// Log::log($e->getMessage());
|
||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||
}
|
||
$this->success('生成成功', $res);
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @ApiTitle(获取不限制的小程序码(太阳码))
|
||
* @ApiSummary(获取不限制的小程序码(太阳码))
|
||
* @ApiRoute(/api/wechat_util/codeunlimit)
|
||
* @ApiMethod(POST)
|
||
* @ApiParams (name="page", type="string", required=false, description="默认是主页,页面 page,例如 pages/index/index,根路径前不要填加 /,不能携带参数(参数请放在scene字段里),如果不填写这个字段,默认跳主页面。scancode_time为系统保留参数,不允许配置")
|
||
* @ApiParams (name="scene", type="string", required=false, description="最大32个可见字符,只支持数字,大小写英文以及部分特殊字符:!#$&'()*+,/:;=?@-._~,其它字符请自行编码为合法字符(因不支持%,中文无法使用 urlencode 处理,请使用其他编码方式)")
|
||
* @ApiParams (name="env_version", type="string",required=false , description="默认值release。要打开的小程序版本。正式版为release,体验版为trial,开发版为develop,仅在微信外打开时生效。")
|
||
* @ApiParams (name="check_path", type="bool",required=false , description="默认是true,检查page 是否存在,为 true 时 page 必须是已经发布的小程序存在的页面(否则报错);为 false 时允许小程序未发布或者 page 不存在, 但page 有数量上限(60000个)请勿滥用。")
|
||
* @ApiParams (name="width", type="number",required=false , description="默认430,二维码的宽度,单位 px,最小 280px,最大 1280px")
|
||
* @ApiParams (name="auto_color", type="bool",required=false , description="自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调,默认 false")
|
||
* @ApiParams (name="line_color", type="json",required=false , description="默认是{’r’:0,’g’:0,’b’:0} 。auto_color 为 false 时生效,使用 rgb 设置颜色 例如 {’r’:’xxx’,’g’:’xxx’,’b’:’xxx’} 十进制表示")
|
||
* @ApiParams (name="is_hyaline", type="bool",required=false , description="默认是false,是否需要透明底色,为 true 时,生成透明底色的小程序")
|
||
* @ApiReturn({
|
||
"code" => 1,
|
||
"msg" => "获取成功",
|
||
"data" => {}
|
||
*})
|
||
*/
|
||
public function codeunlimit() {
|
||
|
||
$page = $this->request->post('page/s','');
|
||
$scene = $this->request->post('scene/s','');
|
||
$env_version = $this->request->post('env_version/s','release');
|
||
$check_path = $this->request->post('check_path/d',1);
|
||
$width = $this->request->post('width/d',430);
|
||
$auto_color = $this->request->post('auto_color/d',0);
|
||
$line_color = $this->request->post('line_color/s',0);
|
||
$is_hyaline = $this->request->post('is_hyaline/d',1);
|
||
|
||
try {
|
||
// 实例对应的接口对象
|
||
$res = \bw\Common::getMiniappCode($scene, $page, $width, $auto_color ? true : false, $line_color, $is_hyaline ? true : false, null, $check_path ? true : false, $env_version,false);
|
||
} catch (\Exception $e){
|
||
// Log::log($e->getMessage());
|
||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||
}
|
||
$this->success('生成成功', $res);
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|