# Niushop開源商城通過插件開發短信接口
---
niushop系統內置安裝了阿里云短信接口,開發者可以根據自己的要求自行開發短信接口

* **后臺功能開發,實現系統配置**
```
namespace addons\NsAlisms;
use addons\BaseConfig;
class Config extends BaseConfig
{
/**
* 菜單設置
*/
public function menu(){
$menu = [
[
'module_name' => '阿里云短信配置',
'controller' => 'Config',
'method' => 'alismsConfig',
'parent' => ['module' => 'admin', 'controller' => 'Config', 'method' => 'webconfig', 'level' => 2],
'url' => 'Config/alismsConfig',
'is_menu' => 0,
'is_dev' => 0,
'sort' => 9,
'desc' => '阿里云短信配置',
'module_picture' => '',
'icon_class' => '',
'is_control_auth' => 1,
]
];
return $menu;
}
}
```
* **鉤子開發,獲取短信配置smsconfig\($param\),注意配置信息**
```php
public function smsconfig($param)
{
$alisms_config = new AlismsConfig();
$config = $alisms_config->getMobileMessage($param['instance_id']);
$config["logo"] = "addons/NsAlisms/aliyun.jpg";
$config["pay_name"] = "阿里云短信";
$config["desc"] = "該系統支持短信接口";
$config['url'] = __URL('__URL__/NsAlisms/' . ADMIN_MODULE . '/Config/alismsConfig');
return $config;
}
```
* **鉤子開發,短信發送,注意返回數據結構,包括code,message,param**
```php
/**
* 短信發送(短信插件實現接口)
* @param unknown $param 說明傳入參數 signName(短信簽名) smsParam(短信變量賦值json) mobile(手機號) code(模板id)
* @return string|multitype:number string |multitype:number unknown Ambigous <number, string, unknown, NULL>
*/
public function smssend($param)
{
$alisms_config = new AlismsConfig();
$config = $alisms_config->getMobileMessage(0);
if ($config['is_use'] == 0) {
return '';
}
if (empty($config['value']['appKey']) || empty($config['value']['secretKey']) || empty($config['value']['freeSignName']) || empty($config['is_use'])) {
return [
'code' => -1,
'message' => "短信配置信息有誤!",
'param' => 0
];
}
$result = $alisms_config->aliSmsSend($config['value']['appKey'], $config['value']['secretKey'], $param['signName'], $param['smsParam'], $param['mobile'], $param['code'], $config['value']['user_type']);
$result = $this->dealAliSmsResult($result);
return [
'code' => $result["code"],
'message' => $result["message"],
'param' => rand(100000, 999999)
];
}
```