42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
namespace app\service;
|
|
|
|
|
|
use addons\webman\model\PhoneSmsLog;
|
|
use Exception;
|
|
|
|
/**
|
|
* 短信服务
|
|
*/
|
|
class SmsServicesServices
|
|
{
|
|
/**
|
|
* @param int $countryCode
|
|
* @param string $phone
|
|
* @param int $type
|
|
* @param int $playerId
|
|
* @param string $name
|
|
* @return bool
|
|
* @throws Exception
|
|
*/
|
|
public static function sendSms(int $countryCode, string $phone, int $type, int $playerId = 0, string $name = ''): bool
|
|
{
|
|
$openCountryCode = config('sms.open_country_code');
|
|
if (!in_array($countryCode, $openCountryCode)) {
|
|
$openCountryName = '';
|
|
foreach ($openCountryCode as $item) {
|
|
$openCountryName .= ',' . trans('country_code_name.' . $item, [], 'message');
|
|
}
|
|
throw new Exception(trans('currently_open_countries_and_regions', ['{openCountryCode}', $openCountryName], 'message'));
|
|
}
|
|
switch ($countryCode) {
|
|
case PhoneSmsLog::COUNTRY_CODE_TW:
|
|
return (new TwSmsServicesServices())->send($phone, $type, $playerId, $name);
|
|
case PhoneSmsLog::COUNTRY_CODE_JP:
|
|
return (new JpSmsServicesServices())->send($phone, $type, $playerId);
|
|
default:
|
|
throw new Exception(trans('country_code_error', [], 'message'));
|
|
}
|
|
}
|
|
}
|