You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zhishifufei_php/extend/service/RoutineTemplateService.php

170 lines
6.5 KiB

9 months ago
<?php
// +----------------------------------------------------------------------
// | 天诚科技 [ 刘海东 17600099397赋能开发者,助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2020 https://www.tczxkj.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed 该系统并不是自由软件,未经许可不能去掉相关版权
// +----------------------------------------------------------------------
// | Author:甘肃天诚志信电子商务有限公司 刘海东 联系电话维系17600099397
// +----------------------------------------------------------------------
namespace service;
use app\wap\model\routine\RoutineServer;
use think\Db;
use basic\AuthBasic;
/**
* 公众号订阅消息
* Class RoutineTemplate
* @package app\routine\model\routine
*/
class RoutineTemplateService extends AuthBasic
{
//订单支付成功
const ORDER_PAY_SUCCESS = '6271';
//订单发货提醒(快递)
const ORDER_POSTAGE_SUCCESS = '3637';
//直播开播提醒
const LIVE_BROADCAST = '16172';
//拼单进度提醒
const PINK_ORDER_REMIND = '5275';
//拼团成功通知
const ORDER_USER_GROUPS_SUCCESS = '3098';
//拼团失败通知
const ORDER_USER_GROUPS_LOSE = '4534';
//开团成功通知
const ORDER_USER_PINGT_SUCCESS = '4533';
//账户资金变动提醒
const USER_BALANCE_CHANGE = '4148';
//退款进度通知
const ORDER_REFUND_STATUS = '1451';
//收货提醒通知
const ORDER_TAKE_SUCCESS = '3510';
//活动报名成功通知
const ORDER_USER_SIGN_UP_SUCCESS = '13684';
//审核结果通知
const EXAMINE_RESULT = '5545';
//检查模版
const TEMPLATE_CHECK = 1;
/**
* 根据模板编号获取模板ID
* @param string $tempKey
* @return mixed|string
*/
public static function setTemplateId($tempKey = '')
{
if ($tempKey == '') return '';
return Db::name('RoutineTemplate')->where('tempkey', $tempKey)->where('status', 1)->value('tempid');
}
/**
* 从公共模板库中选用模板,到私有模板库中
*/
public static function addTemplate($tid, $kidList = [], $sceneDesc = '')
{
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=" . $accessToken;
$data['access_token'] = $accessToken;
$data['tid'] = $tid;
$data['kidList'] = $kidList;
$data['sceneDesc'] = $sceneDesc;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlPost($url, json_encode($data)), true);
}
/**
* 获取公众号所属类目,可用于查询类目下的公共模板
*/
public static function getCategory()
{
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/addtemplate?access_token=" . $accessToken;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlGet($url), true);
}
/**
* 获取公共模板下的关键词列表
*/
public static function getPubTemplateKeyWordsById($tid)
{
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatekeywords?access_token=" . $accessToken;
$data['access_token'] = $accessToken;
$data['tid'] = $tid;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlGet($url, json_encode($data)), true);
}
/**
* 获取类目下的公共模板,可从中选用模板使用
*/
public static function getPubTemplateTitleList($ids, $start = 0, $limit = 10)
{
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/getpubtemplatetitles?access_token=" . $accessToken;
$data['access_token'] = $accessToken;
$data['ids'] = $ids;
$data['start'] = $start;
$data['limit'] = $limit;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlGet($url, json_encode($data)), true);
}
/**
* 获取私有的模板列表
* @param int $offset
* @param int $count
* @return mixed
*/
public static function getTemplateList()
{
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/gettemplate?access_token=" . $accessToken;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlGet($url), true);
}
/**
* 删除公众号中的某个订阅消息
* @param string $templateId
* @return bool|mixed
*/
public static function delTemplate($priTmplId = '')
{
if ($priTmplId == '') return false;
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/wxaapi/newtmpl/deltemplate?access_token=" . $accessToken;
$data['access_token'] = $accessToken;
$data['priTmplId'] = $priTmplId;
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(AuthBasic::curlPost($url, json_encode($data)), true);
}
/**
* 发送订阅消息
* @param string $openId 接收者(用户)的 openid
* @param string $templateId 所需下发的模板消息的id
* @param string $link 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
* @param array $dataKey 模板内容,不填则下发空模板
* @return bool|mixed
*/
public static function sendTemplate($openId = '', $templateId = '', $link = '', $dataKey = array())
{
if ($openId == '' || $templateId == '') return false;
$accessToken = RoutineServer::get_access_token();
$url = "https://api.weixin.qq.com/cgi-bin/message/subscribe/bizsend?access_token=" . $accessToken;
$data['touser'] = $openId;//接收者(用户)的 openid
$data['template_id'] = $templateId; //所需下发的模板消息的id
$data['page'] = $link; //点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
$data['data'] = $dataKey; //模板内容,不填则下发空模板
if (self::TEMPLATE_CHECK != 1) return false;
return json_decode(parent::curlPost($url, json_encode($data)), true);
}
}