短信接口开发
位置
短信接口放在 public/plugins/sms/ 目录下
目录结构
以智简魔方官方短信平台接口为例,其主要目录结构如下:
public/plugins/sms/idcsmart/
|--- Idcsmart.php (入口文件)
|--- config.php (配置项客户配置项,在插件设置中显示)开发流程
以智简魔方官方短信平台接口为例:
创建短信接口目录 public/plugins/sms/idcsmart/
①目录名以小写字母+下划线形式,必须以字母开头,如idcsmart;
创建入口文件:Idcsmart.php
①命名空间namespace sms\idcsmart(控制器下命名空间对应相应目录即可,其它同理);
②以目录名大驼峰+.php,创建在短信接口根目录下,如idcsmart\Idcsmart.php;
③文件中需要定义info属性,示例:
# 基础信息
public $info = array(
'name' => 'Idcsmart',//Demo插件英文名,改成你的插件英文就行了
'title' => '智简魔方',
'description' => '智简魔方官方短信平台接口',
'status' => 1,
'author' => '智简魔方',
'version' => '1.0.1',
'help_url' => 'https://my.idcsmart.com/goods.htm?id=922',//申请接口地址
);④必须实现install()安装以及uninstall()卸载方法,没有额外操作,返回true即可;
⑤需要实现以下方法
| 方法名称 | 描述 | 参数 | 返回 |
|---|---|---|---|
| getCnTemplate | 获取国内模板 | template_id:模板 ID;config:自定义配置 | status:状态;template.template_id:模板 ID;template.template_status:模板状态,0 未提交,1 审核中,2 通过,3 未通过;msg:错误信息 |
| createCnTemplate | 创建国内模板 | title:模板标题;content:模板内容;config:自定义配置 | 同 getCnTemplate |
| putCnTemplate | 修改国内模板 | title:模板标题;content:模板内容;config:自定义配置 | 同 getCnTemplate |
| deleteCnTemplate | 删除国内模板 | template_id:模板 ID;config:自定义配置 | status:状态;msg:错误信息 |
| sendCnSms | 发送国内短信 | mobile:手机号;content:模板内容;config:自定义配置;template_id:模板 ID;templateParam:模板参数,参考附表 1 | status:状态;content:已替换参数的模板内容;msg:错误信息 |
| getGlobalTemplate | 获取国际模板 | 同 getCnTemplate | 同 getCnTemplate |
| createGlobalTemplate | 创建国际模板 | 同 createCnTemplate | 同 createCnTemplate |
| putGlobalTemplate | 修改国际模板 | 同 putCnTemplate | 同 putCnTemplate |
| deleteGlobalTemplate | 删除国际模板 | 同 deleteCnTemplate | 同 deleteCnTemplate |
| sendGlobalSms | 发送国际短信 | 同 sendCnSms | 同 sendCnSms |
查询或删除模板的参数示例:
$param = [
'template_id' => 1,
'config' => [],
];创建或修改模板的参数示例:
$param = [
'title' => 'test',
'content' => '测试内容',
'config' => ['key' => 'value'],
];发送短信的参数示例:
$param = [
'mobile' => '129483782423',
'content' => '测试内容',
'config' => ['key' => 'value'],
'template_id' => 1,
'templateParam' => 1,
];模板查询、创建或修改成功时的返回示例:
return [
'status' => 'success',
'template' => [
'template_id' => 'w3423',
'template_status' => 2,
],
];删除模板成功时的返回示例:
return ['status' => 'success'];发送短信成功时的返回示例:
return [
'status' => 'success',
'content' => '测试内容',
];模板操作失败时的返回示例:
return [
'status' => 'error',
'msg' => '模板ID错误',
];发送短信失败时的返回示例:
return [
'status' => 'error',
'msg' => '模板ID错误',
'content' => '测试内容',
];创建默认短信模板
①在插件根目录下创建config/smsTemplate.php文件;
②文件内容返回一个数组即可,如下:
return [
[
'title' => '验证码',
'content' => '验证码@var(code),5分钟内有效!请勿泄漏于他人',
'name'=>'code'
],
]title标题;content内容,带参数;name为系统模板标识,唯一;
③系统默认模板参考附表2;
④在install安装中返回模板数组,系统会自动创建模板;
到后台短信通知管理,可以查看接口列表,安装、配置即可使用
示例
参考智简魔方官方短信平台接口idcsmart
附
附表1、templateParam参数列表(国际国内参数一样)
| 参数名 | 描述 | 类型 | 示例 |
|---|---|---|---|
| system_website_name | 系统网站名 | 系统 | 智简魔方 |
| system_website_url | 系统网站地址 | 系统 | www.idcsmart.com |
| order_id | 订单ID | 订单 | 125 |
| order_create_time | 订单创建时间 | 订单 | 1707094285 |
| order_amount | 订单金额 | 订单 | 1.00 |
| product_name | 产品名称(包括商品名和主机名) | 产品 | 测试-ser23142123 |
| product_marker_name | 商品名称 | 产品 | 测试 |
| product_first_payment_amount | 产品首付金额 | 产品 | 100.00 |
| product_renew_amount | 产品续费金额 | 产品 | 100.00 |
| product_binlly_cycle | 产品周期 | 产品 | 计费周期免费free,一次onetime,周期先付recurring_prepayment,周期后付recurring_postpaid |
| product_active_time | 产品激活时间 | 产品 | 1707094285 |
| product_due_time | 产品到期时间 | 产品 | 1707094285 |
| product_suspend_reason | 产品暂停原因 | 产品 | 到期暂停 |
| renewal_first | 续费X天后到期第一次提醒 | 产品 | 1 |
| renewal_second | 续费X天后到期第二次提醒 | 产品 | 2 |
| client_register_time | 客户注册时间 | 客户 | 1707094285 |
| client_username | 用户名 | 客户 | test |
| client_email | 邮件 | 客户 | 135460@qq.com |
| client_phone | 手机号 | 客户 | 16548765643 |
| client_company | 公司 | 客户 | 智简魔方 |
| client_last_login_time | 最后登录时间 | 客户 | 1707094285 |
| client_last_login_ip | 最后登录ip | 客户 | 122.32.13.3 |
| account | 账户名 | 客户 | test |
附表2、系统默认短信模板(以下模板内容为官方短信平台模板内容,使用需修改)
| 系统模板标识(name) | 模板标题(title) | 模板类型 | 模板内容(content)示例 |
|---|---|---|---|
| code | 验证码 | 系统 | 验证码@var(code),5分钟内有效!请勿泄漏于他人 |
| client_login_success | 用户登录 | 客户 | 您的账号@var(account)成功登录系统,如不是本人操作请及时修改密码 |
| client_register_success | 用户注册 | 客户 | @var(account),感谢您支持@var(system_website_name) |
| client_change_phone | 客户更改手机 | 客户 | 您的手机号被改为:@var(client_phone),请注意账户安全 |
| client_change_password | 客户更改密码 | 客户 | 您的密码被改为:@var(client_password),请注意账户安全 |
| order_create | 订单创建 | 订单 | 您已下单,订单:@var(order_id)(订单号),请及时支付 |
| host_pending | 产品开通中 | 产品 | 您的产品:@var(product_name)(产品名称)正在开通,请耐心等待 |
| host_active | 开通成功 | 产品 | 您的产品:@var(product_name)(产品名称),已开通可使用 |
| host_suspend | 产品暂停通知 | 产品 | 您的产品:@var(product_name)(产品名称),由于@var(product_suspend_reason),已停用 |
| host_unsuspend | 产品解除暂停通知 | 产品 | 您的产品:@var(product_name)(产品名称),已解除暂停 |
| host_terminate | 产品删除通知 | 产品 | 您的产品:@var(product_name)(产品名称),由于到期未续费,已删除 |
| host_upgrad | 产品升降级 | 产品 | 您已成功升级产品@var(product_name),感谢您的支持 |
| host_renewal_first | 第一次续费提醒 | 产品 | 您的产品:@var(product_name)(产品名称),还有@var(renewal_first)天到期,请及时续费 |
| host_renewal_second | 第二次续费提醒 | 产品 | 您的产品:@var(product_name)(产品名称),还有@var(renewal_second)天到期,请及时续费 |
| host_overdue_first | 逾期付款第一次提醒 | 产品 | 您的产品:@var(product_name)(产品名称)已到期,将会删除,请及时续费 |
| host_overdue_second | 逾期付款第二次提醒 | 产品 | 您的产品:@var(product_name)(产品名称)已到期,将会删除,请及时续费 |
| host_overdue_third | 逾期付款第三次提醒 | 产品 | 您的产品:@var(product_name)(产品名称)已到期,将会删除,请及时续费 |
| order_overdue | 订单未付款通知 | 订单 | 您的订单:@var(order_id)(订单号)尚未支付,金额@var(order_amount),请及时支付 |
| admin_order_amount | 订单金额修改 | 订单 | 您的订单:@var(order_id)(订单号)金额修改为@var(order_amount),请及时支付 |
| order_pay | 订单支付通知 | 订单 | 您的订单:@var(order_id)(订单号)支付成功,支付金额为:@var(order_amount)元 |
| order_recharge | 充值成功通知 | 订单 | 充值成功,本次充值金额为:@var(order_amount)元 |