CRMEB/crmeb/crmeb/services/SMSService.php
2019-11-19 14:31:53 +08:00

218 lines
5.7 KiB
PHP

<?php
namespace crmeb\services;
/**
* 短信服务
* Class SMSService
* @package crmeb\services
*/
class SMSService
{
// 短信账号
private static $SMSAccount;
// 短信token
private static $SMSToken;
public static $status;
// 短信请求地址
private static $SMSUrl = 'https://sms.crmeb.net/api/';
//短信支付回调地址
private static $payNotify;
//验证码
const VERIFICATION_CODE = 518076;
//支付成功
const PAY_SUCCESS_CODE = 520268;
//发货提醒
const DELIVER_GOODS_CODE = 520269;
//确认收货提醒
const TAKE_DELIVERY_CODE = 520271;
//管理员下单提醒
const ADMIN_PLACE_ORDER_CODE = 520272;
//管理员退货提醒
const ADMIN_RETURN_GOODS_CODE = 520274;
//管理员支付成功提醒
const ADMIN_PAY_SUCCESS_CODE = 520273;
//管理员确认收货
const ADMIN_TAKE_DELIVERY_CODE = 520422;
public function __construct()
{
self::$status = strlen(sysConfig('sms_account')) != 0 ?? false && strlen(sysConfig('sms_token')) != 0 ?? false;
}
public static function getConstants($code = '')
{
$oClass = new \ReflectionClass(__CLASS__);
$stants = $oClass->getConstants();
if ($code) return isset($stants[$code]) ? $stants[$code] : '';
else return $stants;
}
private static function auto()
{
self::$SMSAccount = sysConfig('sms_account');
self::$SMSToken = md5(self::$SMSAccount . md5(sysConfig('sms_token')));
self::$payNotify = sysConfig('site_url') . '/api/sms/pay/notify';
}
/**
* 验证码接口
* @return string
*/
public static function code()
{
return self::$SMSUrl . 'sms/captcha';
}
/**
* 短信注册
* @param $account
* @param $password
* @param $url
* @param $phone
* @param $code
* @param $sign
* @return mixed
*/
public static function register($account, $password, $url, $phone, $code, $sign)
{
self::auto();
$data['account'] = $account;
$data['password'] = $password;
$data['url'] = $url;
$data['phone'] = $phone;
$data['sign'] = $sign;
$data['code'] = $code;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/register', $data), true);
}
/**
* 公共短信模板列表
* @param array $data
* @return mixed
*/
public static function publictemp(array $data)
{
self::auto();
$data['account'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/publictemp', $data), true);
}
/**
* 公共短信模板添加
* @param $id
* @param $tempId
* @return mixed
*/
public static function use($id, $tempId)
{
self::auto();
$data['account'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
$data['id'] = $id;
$data['tempId'] = $tempId;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/use', $data), true);
}
/**
* 发送短信
* @param $phone
* @param $template
* @param $param
* @return bool|string
*/
public static function send($phone, $template, array $param)
{
self::auto();
$data['uid'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
$data['mobile'] = $phone;
$data['template'] = $template;
$data['param'] = json_encode($param);
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/send', $data), true);
}
/**
* 账号信息
* @return mixed
*/
public static function count()
{
self::auto();
$data['account'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/userinfo', $data), true);
}
/**
* 支付套餐
* @param $page
* @param $limit
* @return mixed
*/
public static function meal($page, $limit)
{
$data['page'] = $page;
$data['limit'] = $limit;
return json_decode(HttpService::getRequest(self::$SMSUrl . 'sms/meal', $data), true);
}
/**
* 支付码
* @param $payType
* @param $mealId
* @param $price
* @param $attach
* @return mixed
*/
public static function pay($payType, $mealId, $price, $attach)
{
self::auto();
$data['uid'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
$data['payType'] = $payType;
$data['mealId'] = $mealId;
$data['notify'] = self::$payNotify;
$data['price'] = $price;
$data['attach'] = $attach;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/mealpay', $data), true);
}
/**
* 申请模板消息
* @param $title
* @param $content
* @param $type
* @return mixed
*/
public static function apply($title, $content, $type)
{
self::auto();
$data['account'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
$data['title'] = $title;
$data['content'] = $content;
$data['type'] = $type;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/apply', $data), true);
}
/**
* 短信模板列表
* @param $data
* @return mixed
*/
public static function template($data)
{
self::auto();
$data['account'] = self::$SMSAccount;
$data['token'] = self::$SMSToken;
return json_decode(HttpService::postRequest(self::$SMSUrl . 'sms/template', $data), true);
}
}