violetshih/ taiwan-sms-laravel
Laravel包装库,用于台湾短信服务
dev-main
2024-02-06 08:46 UTC
Requires
Requires (Dev)
- orchestra/testbench: ^6.24
- pestphp/pest: ^1.21
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-06 09:56:10 UTC
README
可以自定义备用短信服务,当主要服务出现问题时,可以自动切换到备用发送服务
支持的短信商
- 三竹短信 Mitake https://sms.mitake.com.tw/common/index.jsp
- 短信王 kotsms https://kotsms.com.tw/index.php
- Every8d 互動資通 https://www.teamplus.tech/product/every8d-download/
- Infobip https://infobip.com/
安装步骤
- 安装软件包 $ composer require violetshih/taiwan-sms-laravel
- 复制配置 $ php artisan vendor:publish --provider="Violetshih\TaiwanSmsLaravel\TaiwanSmsServiceProvider"
- 查看配置 $ vim config/taiwan_sms.php
- 设置您的主要短信供应商(需先申请权限)和确认账户密码的ENV key
- 将账户密码设置到专安环境配置文件 $ vim .env
配置文件
路径:/configs/taiwan_sms.php
<?php return [ 'primary' => 'every8d', // 主要 SMS 服務商,可填寫以下擇一 every8d, kotsms, mitake, infobip 'failover' => '', // 次要(選填) 備援 SMS 服務商,可填寫以下擇一 every8d, kotsms, mitake, infobip 'timeout' => 5, // 等待多久判定服務無回應,自動切換服務商或返回狀態 'services' => [ 'every8d' => [ 'url' => env('EVERY8D_URL', 'http://biz3.every8d.com.tw/prepaid/API21/HTTP/sendSMS.ashx?UID=%s&PWD=%s&SB=%s&MSG=%s&DEST=%s'), 'username' => env('EVERY8D_USERNAME'), // 將 key 複製到專案跟目錄的 .env 裡面,並加上您的帳號,例如:EVERY8D_USERNAME=example2022 'password' => env('EVERY8D_PASSWORD'), // 將 key 複製到專案跟目錄的 .env 裡面,並加上您的密碼,例如:EVERY8D_USERNAME=password2022 ], 'kotsms' => [ 'url' => env('KOTSMS_URL', 'https://api.kotsms.com.tw/kotsmsapi-1.php?username=%s&password=%s&dstaddr=%s&smbody=%s&response='), 'username' => env('KOTSMS_USERNAME'), 'password' => env('KOTSMS_PASSWORD'), ], 'infobip' => [ 'url' => env('INFOBIP_URL', 'https://vqlkm.api.infobip.com'), 'username' => env('INFOBIP_USERNAME'), 'password' => env('INFOBIP_PASSWORD'), ], 'mitake' => [ 'url' => env('MITAKE_URL', 'https://sms.mitake.com.tw/b2c/mtk/SmSend?CharsetURL=UTF-8'), 'username' => env('MITAKE_USERNAME'), 'password' => env('MITAKE_PASSWORD'), ] ] ];
使用示例
$phone = '0988123123'; $text = '測試中文 Test ABC 123'; try { TaiwanSms::send($phone, $text); } catch (\Exception $exception) { return redirect()->back()->with(['error' => $exception->getMessage()]); }