常见问题:ECJia到家:ECJia到家如何新增短信模版

来自ECJiaWiki
跳转至: 导航搜索

ECJia到家如何新增短信模板

短信模板是什么?

短信通知对于一个商城系统是很重要的,注册时可以给会员发送短信验证码注册,下单时可以用于通知商家和用户。而每种短信都会有一个短信模板,用于定义发送短信的内容。


开启并配置短信插件

Step1:开启并配置短信插件

新增短信模版

Step1:短信发送流程说明

  • 在ECJia到家后台,短信模块中,已经预先添加了很多短信模板。但想要新增短信模板,又不想修改原有模板的情况下如何新增模板呢?
  • 在这里先说明一下短信的发送流程。
  • 第一步:首页需要在平台后台短信模块中,开启短信事件,添加短信模板。
  • 第二步:需要把平台后台添加的模板,在ECJia短信平台中报备模板。
  • 第三步:需要在接口中,触发此短信模板,传递参数就会发送短信。

Step2:短信模板参数说明

  • 首先在代码中找到短信模板文件保存路径。模版文件保存在【/content/apps/sms/classes/Events】目录中。
  • 模板文件中参数介绍:
  • 【$code : 短信模板的参数,接口触发模板的对应的参数。定义名称,例如:确认收货模板 -> sms_express_confirm,获取验证码 -> sms_get_validate】
  • 例如:
protected $code = 'sms_express_confirm';
  • 【$template : 短信的具体发送模板,可根据发送内容自行定义。定义模板时,发送参数也要定义好】。

  注意事项:因为此模板要到短信平台报备,所以模板中参数定义时需注意,参数前最好标明此参数的意义。

  • 例如:
protected $template = '买家已成功确认收货,配送单号为:${express_sn}。如有问题请拨打客服电话:${service_phone}。';
  • 禁止这种模板,参数不明确,在短信平台中报备模板是不会通过的。
protected $template = '买家已成功确认收货,${express_sn},${service_phone}。';
  • 在构造函数中定义了name、description、available_values三个参数。
  • 【name : 定义此短信模板的名称。】
  • 【description: 定义此短信模板的描述。】
  • 【available_values: 定义此短信模板发送参数的中文说明。】
  • 例如:
public function __construct()
    {
    	$this->name = __('确认收货', 'sms');
    	$this->description = __('买家确认收货时及时通知商家', 'sms');
    	$this->available_values = [
	    	'express_sn' 	=> __('配送单号', 'sms'),
	    	'service_phone' => __('客服电话', 'sms')
    	];
    }

Step3:新增一个短信模板

  • 复制一个短信模板文件,修改文件名和类名。

  注意事项:类名要与文件名相同。

短信模版 01.png
namespace Ecjia\App\Sms\Events;
use Ecjia\App\Sms\EventAbstract;
class SmsDemo extends EventAbstract
{
	protected $code = 'sms_demo';
	protected $template = '发送内容:这是一个测试模板,发送参数有用户名:${name},手机号:${phone}';
	public function __construct()
	{
		$this->name = __('模板名称测试模板', 'sms');
		$this->description = __('模板描述:这是一个测试模板', 'sms');
		$this->available_values = [
			'name' 	=> __('用户名', 'sms'),
			'phone' => __('手机号', 'sms')
		];
	}
}

平台后台添加模板并报备模板

Step1:添加模板

  • 平台后台找到此模板,开始短信模板,并添加模板。
短信模版 02.png
短信模版 03.png

Step2:报备模板

接口中触发此模版

Step1:找到发送短信的接口

  • 例如,需要在加入商品到购物车时,发送此短信模板,使用的接口是【cart/create】。点击链接进入 ECJia到家接口开放中心,查看到家开放接口。
  • 点击链接进入 ECJia到家TestAPI调试工具使用说明,进行接口测试。
  • 在代码中,找到【/content/config/api.php】文件,搜索接口【cart/create】,找到此接口存放目录。
短信模版 04.png
  • 【cart::cart/create】,其中【cart:代表模块名称,在/content/aps目录中对应目录】。
  • 其中【cart/create:接口文件存放路径,代表/content/apps/cart/modules/cart/create_module.class.php文件】。
  • 点击链接进入 ECJia到家结构目录说明,查看到家目录结构。
短信模版 05.png

Step2:接口中触发短信模板

  • 在接口中定义如下代码:
//发送短信数组
$options = array(
    	//要发送模板的手机号,例如13812341234
    	'mobile' => $mobile,
    	//短信模板的参数
    	'event'	 => 'sms_demo',
    	//短信模板中传递的变量
    	'value'  =>array(
    		//用户名
    		'name'  	=> $name,
    		//手机号
    		'phone' 	=> $phone,
    	),
 );
//发送短信模板API,只需把模板所需参数定义成此数组格式,传递进去即可
RC_Api::api('sms', 'send_event_sms', $options);

Step3:发送短信消息

  • 可以使用ECJiaTestAPI工具,请求【cart/create】接口,进行测试。
  • 也可以在平台后台,点击推送模板,进行测试。
短信模版 06.png
短信模版 07.png

Step4:查看发送记录

  • 在平台后台,短信模块,短信记录中发送记录。
短信模版 08.png