萤火小程序商城,是一款开源的电商系统,为中小企业提供最佳的新零售解决方案。采用稳定的MVC框架开发,执行效率、扩展性、稳定性值得信赖。永久更新维护,界面美观大方。小编对他还是比较了解的,今天小编就以新增短信接口为例,给大家讲解一下如何进行二次开发,我们今天讲解的是2.0版本,使用的短信接口是我们短信宝短信群发平台的短信接口,我们短信宝短信群发平台的接口非常稳定,发送速度快,注册就送测试短信,推荐大家使用
1:打开项目:app\common\library\sms\Config.php 新增短信宝配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
public static function getEasySmsConfig(array $smsConfig): array { return [ // HTTP 请求的超时时间(秒) 'timeout' => 5.0, // 默认发送配置 'default' => [ // 网关调用策略,默认:顺序调用 'strategy' => OrderStrategy::class, // 默认可用的发送网关 'gateways' => [$smsConfig[ 'default' ]], ], // 可用的网关配置 'gateways' => [ 'aliyun' => [ 'access_key_id' => $smsConfig[ 'engine' ][ 'aliyun' ][ 'AccessKeyId' ], 'access_key_secret' => $smsConfig[ 'engine' ][ 'aliyun' ][ 'AccessKeySecret' ], 'sign_name' => $smsConfig[ 'engine' ][ 'aliyun' ][ 'sign' ], ], 'qcloud' => [ 'sdk_app_id' => $smsConfig[ 'engine' ][ 'qcloud' ][ 'SdkAppID' ], 'secret_id' => $smsConfig[ 'engine' ][ 'qcloud' ][ 'AccessKeyId' ], 'secret_key' => $smsConfig[ 'engine' ][ 'qcloud' ][ 'AccessKeySecret' ], 'sign_name' => $smsConfig[ 'engine' ][ 'qcloud' ][ 'sign' ], ], 'qiniu' => [ 'access_key' => $smsConfig[ 'engine' ][ 'qiniu' ][ 'AccessKey' ], 'secret_key' => $smsConfig[ 'engine' ][ 'qiniu' ][ 'SecretKey' ], ], 'smsbao' => [ 'user' => $smsConfig[ 'engine' ][ 'smsbao' ][ 'user' ], 'password' => $smsConfig[ 'engine' ][ 'smsbao' ][ 'password' ], ], ] ]; } |
2:打开项目:app\common\library\sms\Driver.php 修改发送配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public function sendSms(string $acceptPhone, string $templateCode, array $templateParams): bool { // 实例化EasySms $easySmsConfig = Config::getEasySmsConfig($ this ->smsConfig); $easySms = new EasySms($easySmsConfig); try { // 执行发送短信 $result = $easySms->send($acceptPhone, [ 'content' => function ($gateway)use($templateParams,$templateCode){ return str_replace( '${' .array_keys($templateParams)[0]. '}' ,array_values($templateParams)[0],$templateCode); }, 'template' => $templateCode, 'data' => $ this ->getSmsTemplateData($templateParams), ]); // 短信发送成功的错误处理 $sendStatus = $ this ->resultHandle($result); } catch (NoGatewayAvailableException $e) { // 短信发送异常的错误处理 $sendStatus = false ; $ this ->exceptionHandle($e); } // 记录日志 helper::logInfo( '发送短信' , [ 'gateway' => $ this ->smsConfig[ 'default' ], 'acceptPhone' => $acceptPhone, 'templateCode' => $templateCode, 'templateParams' => $templateParams, 'sendStatus' => $sendStatus, ]); // 存在异常时抛错 $sendStatus === false && throwError($ this ->getError()); return $sendStatus; } |
3:打开项目:app\common\model\store\Setting.php 修改短信通知配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
SettingEnum::SMS => [ 'key' => SettingEnum::SMS, 'describe' => '短信通知' , 'values' => [ 'default' => 'aliyun' , // 短信服务渠道 'engine' => [ // 阿里云 'aliyun' => [ 'name' => '阿里云短信' , 'AccessKeyId' => '' , 'AccessKeySecret' => '' , 'sign' => '萤火商城' // 短信签名 ], // 腾讯云 'qcloud' => [ 'name' => '腾讯云短信' , 'SdkAppID' => '' , 'AccessKeyId' => '' , 'AccessKeySecret' => '' , 'sign' => '萤火商城' // 短信签名 ], // 七牛云 'qiniu' => [ 'name' => '七牛云短信' , 'AccessKey' => '' , 'SecretKey' => '' , 'sign' => '萤火商城' // 短信签名 ], // 短信宝 'smsbao' => [ 'name' => '短信宝短信' , 'user' => '' , 'password' => '' , ], ], // 短信通知场景 'scene' => [ // 短信验证码 SettingSmsSceneEnum::CAPTCHA => [ 'name' => '短信验证码 (通知用户)' , // 场景名称 'isEnable' => false , // 是否开启 'templateCode' => '' , // 模板ID 'content' => '验证码%s,您正在进行身份验证,打死不要告诉别人哦!' , 'variables' => [ 'aliyun' => [ '${code}' ], 'qiniu' => [ '${code}' ], 'smsbao' => [ '${code}' ], 'qcloud' => [ '{1}' ], ] ], // 新付款订单 SettingSmsSceneEnum::ORDER_PAY => [ 'name' => '新付款订单 (通知商家)' , // 场景名称 'isEnable' => false , // 是否开启 'templateCode' => '' , // 模板ID 'acceptPhone' => '' , // 接收手机号 'content' => '您有一条新订单,订单号为:%s,请注意查看' , 'variables' => [ 'aliyun' => [ '${order_no}' ], 'qiniu' => [ '${order_no}' ], 'smsbao' => [ '${order_no}' ], 'qcloud' => [ '{1}' ], ] ], ] ], ], |
4:打开前端项目:src\views\setting\Sms.vue 大概72行增加短信宝页面(此处修改后需要编译)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<div v-show= "form.getFieldValue('default') === 'qcloud'" > <a-form-item label= "SdkAppID" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.qcloud.SdkAppID`]" /> </a-form-item> <a-form-item label= "AccessKeyId" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.qcloud.AccessKeyId`]" /> </a-form-item> <a-form-item label= "AccessKeySecret" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required > <a-input v-decorator= "[`engine.qcloud.AccessKeySecret`]" /> </a-form-item> <a-form-item label= "短信签名 Sign" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.qcloud.sign`]" /> </a-form-item> </div> <!-- 七牛云配置 --> <div v-show= "form.getFieldValue('default') === 'qiniu'" > <a-form-item label= "AccessKey" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.qiniu.AccessKey`]" /> </a-form-item> <a-form-item label= "SecretKey" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.qiniu.SecretKey`]" /> </a-form-item> </div> <!-- 短信宝配置 --> <div v-show= "form.getFieldValue('default') === 'smsbao'" > <a-form-item label= "user" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.smsbao.user`]" /> </a-form-item> <a-form-item label= "password" :labelCol= "labelCol" :wrapperCol= "wrapperCol" required> <a-input v-decorator= "[`engine.smsbao.password`]" /> </a-form-item> </div> |
经过上面的替换,短信宝的短信平台已经替换成功了,可以正常使用了。进行测试发送:
报备一下短信宝的VIP模板,这样就可以走短信宝的优质通道了,即便遇到敏感文字我们都不会人工审核,短信内容3~5秒就可送达。
另外:我们已经开发好完整的yoshopV2.0系统短信宝插件,点击此链接 下载及查看安装流程。
最新更新
电商类
CMS类
微信类