mirror of
https://github.com/crmeb/CRMEB.git
synced 2026-10-30 06:20:50 +00:00
【程序目录】修复腾讯云短信错误问题
This commit is contained in:
parent
5224887cc8
commit
13adf9a931
@ -91,7 +91,7 @@ class SystemNotification extends AuthController
|
||||
if ($data['mark'] == 'verify_code') $data['type'] = 'is_sms';
|
||||
if (!$data['id']) return app('json')->fail(100100);
|
||||
if ($this->services->saveData($data)) {
|
||||
CacheService::delete('NOTCE_' . $data['mark']);
|
||||
CacheService::delete('NOTICE_SMS_' . $data['mark']);
|
||||
return app('json')->success(100001);
|
||||
} else {
|
||||
return app('json')->fail(100007);
|
||||
|
||||
@ -14,8 +14,9 @@ use crmeb\services\CacheService;
|
||||
use think\exception\ValidateException;
|
||||
use crmeb\services\FormBuilder as Form;
|
||||
use app\services\other\UploadService;
|
||||
use think\facade\Config;
|
||||
use think\facade\Lang;
|
||||
use app\services\system\lang\LangTypeServices;
|
||||
use app\services\system\lang\LangCodeServices;
|
||||
use app\services\system\lang\LangCountryServices;
|
||||
|
||||
if (!function_exists('getWorkerManUrl')) {
|
||||
|
||||
@ -916,25 +917,33 @@ if (!function_exists('getLang')) {
|
||||
*/
|
||||
function getLang($code, array $replace = [])
|
||||
{
|
||||
$config = Config::get('lang');
|
||||
$request = app()->request;
|
||||
|
||||
//获取接口传入的语言类型
|
||||
if (!$range = $request->header('cb-lang')) {
|
||||
$range = $request->cookie($config['cookie_var']);
|
||||
if ($request->header('accept-language') !== null) {
|
||||
$range = explode(',', $request->header('accept-language'))[0];
|
||||
} else {
|
||||
$range = 'zh-CN';
|
||||
}
|
||||
}
|
||||
|
||||
//如果找到当前语言类型,默认中文
|
||||
$langData = array_values($config['accept_language']);
|
||||
if (!in_array($range, $langData)) {
|
||||
$range = 'zh_cn';
|
||||
}
|
||||
// 获取type_id
|
||||
/** @var LangCountryServices $langCountryServices */
|
||||
$langCountryServices = app()->make(LangCountryServices::class);
|
||||
$typeId = $langCountryServices->value(['code' => $range], 'type_id') ?: 1;
|
||||
|
||||
// 获取缓存key
|
||||
/** @var LangTypeServices $langTypeServices */
|
||||
$langTypeServices = app()->make(LangTypeServices::class);
|
||||
$langData = $langTypeServices->getColumn(['status' => 1, 'is_del' => 0], 'file_name', 'id');
|
||||
$langStr = 'lang_' . str_replace('-', '_', $langData[$typeId]);
|
||||
|
||||
//读取当前语言的语言包
|
||||
$lang = CacheService::redisHandler()->remember('lang_' . $range, function () use ($config, $range) {
|
||||
return include $config['extend_list'][$range];
|
||||
$lang = CacheService::redisHandler()->remember($langStr, function () use ($typeId, $range) {
|
||||
/** @var LangCodeServices $langCodeServices */
|
||||
$langCodeServices = app()->make(LangCodeServices::class);
|
||||
return $langCodeServices->getColumn(['type_id' => $typeId, 'is_admin' => 1], 'lang_explain', 'code');
|
||||
}, 3600);
|
||||
|
||||
//获取返回文字
|
||||
$message = (string)($lang[$code] ?? 'Code Error');
|
||||
|
||||
|
||||
@ -65,7 +65,7 @@ abstract class BaseDao
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, bool $search = false)
|
||||
public function selectList(array $where, string $field = '*', int $page = 0, int $limit = 0, string $order = '', bool $search = false)
|
||||
{
|
||||
if ($search) {
|
||||
$model = $this->search($where);
|
||||
@ -74,6 +74,8 @@ abstract class BaseDao
|
||||
}
|
||||
return $model->field($field)->when($page && $limit, function ($query) use ($page, $limit) {
|
||||
$query->page($page, $limit);
|
||||
})->when($order !== '', function ($query) use ($order) {
|
||||
$query->order($order);
|
||||
})->select();
|
||||
}
|
||||
|
||||
|
||||
@ -101,6 +101,9 @@ class SmsService extends NoticeService
|
||||
|
||||
//获取发送短信驱动类型
|
||||
$type = $this->smsType[sys_config('sms_type', 0)];
|
||||
if ($type == 'tencent') {
|
||||
$data = $this->handleTencent($mark, $data);
|
||||
}
|
||||
$smsMake = $services->sms($type);
|
||||
//发送短信
|
||||
$res = $smsMake->send($phone, $templateId, $data);
|
||||
@ -182,5 +185,41 @@ class SmsService extends NoticeService
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理腾讯云参数
|
||||
* @param $mark
|
||||
* @param $data
|
||||
* @return array
|
||||
*/
|
||||
public function handleTencent($mark, $data)
|
||||
{
|
||||
$result = [];
|
||||
switch ($mark) {
|
||||
case 'verify_code':
|
||||
$result = [(string)$data['code'], (string)$data['time']];
|
||||
break;
|
||||
case 'order_pay_false':
|
||||
$result = [$data['order_id']];
|
||||
break;
|
||||
case 'price_revision':
|
||||
$result = [$data['order_id'], (string)$data['pay_price']];
|
||||
break;
|
||||
case 'order_pay_success':
|
||||
$result = [(string)$data['pay_price'], $data['order_id']];
|
||||
break;
|
||||
case 'order_take':
|
||||
$result = [$data['order_id'], $data['store_name']];
|
||||
break;
|
||||
case 'send_order_apply_refund':
|
||||
case 'admin_pay_success_code':
|
||||
case 'send_admin_confirm_take_over':
|
||||
$result = [$data['admin_name'], $data['order_id']];
|
||||
break;
|
||||
case 'order_deliver_success':
|
||||
case 'order_postage_success':
|
||||
$result = [$data['nickname'], $data['store_name'], $data['order_id']];
|
||||
break;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -104,14 +104,14 @@ class Tencent extends BaseSms
|
||||
*/
|
||||
public function send(string $phone, string $templateId, array $data)
|
||||
{
|
||||
$boby = json_encode([
|
||||
$body = json_encode([
|
||||
'PhoneNumberSet' => [$phone],
|
||||
'SmsSdkAppId' => $this->smsSdkAppId,
|
||||
'SignName' => $this->signName,
|
||||
'TemplateId' => $templateId,
|
||||
'TemplateParamSet' => $data,
|
||||
]);
|
||||
$res = HttpService::request(self::API_URL, 'post', $boby, $this->getHeader($boby));
|
||||
$res = HttpService::request(self::API_URL, 'post', $body, $this->getHeader($body));
|
||||
$res = json_decode($res, true);
|
||||
|
||||
if (!empty($res['Response']['Error'])) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user