阿里云短信

短信

短信:Short Message Service,简称SMS,是用户通过手机或其他电信终端直接发送或接收的文字或数字信息,用户每次能接收和发送短信的字符数,是160个英文或数字字符,或者70个中文字符。

随着互联网的极速发展,发短信已经慢慢被微信,QQ或是其他APP的消息服务所取代。目前短信更多的服务是用于通知各种状态,如短信验证,订单状态通知的。OK程序也集成这些功能。您只要短信配置就可以很好的使用短信登录,订单接收了。

黑下阿里云短信服务的坑爹历史

在这里先黑黑阿里云的短信服务历史,PHPOK 程序经历了三次阿里云短信服务变更。

  • 第一次,2017年4月之前,使用的短信服务是独立配置的,OK在2016年时已经集成进来

  • 第二次,2017年4月之后,在此之前未申请短信服务的(好像是3月就不能单独开通了),在2017年4月后就无法使用。当时是将短信服务合并到信息服务里(信息服务,主要用于APP之间发送通知使用)

  • 第三次,2017年底,短信服务又从消息服务中独立出来(嗯,应该是有这个说法吧),然后申请单独申请开通,并给了一个月的缓冲时间(从申请通过开始计算起)

吐槽下,真心好累,三个版本的SDK写法都不一样,第一个版本,遵循了整个平台的sdk规范,核心文件 aliyun-php-sdk-core 可以直接复用。第二个版本完全和 aliyun-php-sdk-core 不一样,统一一个命名为 MNS,折腾了很久。第三个版本的完整版我没有使用,我使用的是Lite版(因为OK程序里基本上只是用来发短信,没有其他什么要求),发现这个版本也没办法直接使用 aliyun-php-sdk-core 文件,不过改造下就可以符合要求了。(是不是爆露了哥不是科班的短板了~说句不怕大伙笑话的,现在的 namespace 学的好痛苦)

适用版本

本服务仅适用于 PHPOK >= 4.8.146 版本,低于此版本的,只能使用消息服务已更新到这个版本的,您需要到阿里云申请消息服务转短信服务

阿里云上的配置

创建Access Key 和 Access Secret阿里云短信 - 图1

开通阿里云短信服务阿里云短信 - 图2

开通后的管理界面阿里云短信 - 图3

配置短信标签,所有短信都会在信息的后面或前面加上这个标签阿里云短信 - 图4

添加签名(这里很抱歉的说一下,OK程序仅支持一个签名,在网关路由的时候就要设置的)阿里云短信 - 图5

短信模板管理,杜绝垃极信息,目前市面上大部分短信内容都是固定内容+变量替换来实现,由供应商核验短信内容阿里云短信 - 图6

这里要说明下,阿里的短信变量写法是:${变量名},这个和SendCloud是不一样的

短信模板常见内容有:

  • 验证码是:${code},请在5分钟内按页面提示填写验证码,切勿泄露

  • 您已成功创建订单:${sn},请及时付款,感谢您购买我们的产品服务

  • 您的订单:${sn} 已经成功付款,我们正在核验中,请耐心等候。

  • 订单:${sn} 客户已经支付成功,请及时审核

  • 您的订单:${sn} 当前状态是:${status},您可以登录官网查阅

后台配置

网关路设置

菜单 → 设置 → 网关路由,配置相应的参数阿里云短信 - 图7

选择短信网关的+号阿里云短信 - 图8

填写配置参数阿里云短信 - 图9

  • 1标签,请自己设置个名称,仅用于后台管理使用

  • 2标签,选择启用及默认

  • 3标签,Access Key ID 就是阿里云上设置

  • 4标签,Access Secret 阿里云上设置的密钥

  • 5标签,您设置的签名,像PHPOK是设置:锟铻科技,您在收到OK的短信验证码会有这四个字

  • 6标签,这个是管理员的手机号,用于管理员接收短信

  • 外网访问域名及区域名节点,不熟悉的朋友,请直接使用默认的,如果您是从 phpok 4.7 升级上来,请将这两个值改成上面的默认值

短信模板关联

菜单 → 工具 → 通知模板阿里云短信 - 图10

模板标签及内容的设置:阿里云短信 - 图11

请仔细看下面的图片的文字说明设置,其中:

  • 【模板标签】对应阿里云的【模板CODE】

  • 【内容】用于映射变量,如在短里使用变量 ${sn},对应系统里的订单编号,那么在内容上写【sn:{$order.sn}】

  • 一行一条变量映射

网站信息设置及订单短信通知设置

登录设置阿里云短信 - 图12

订单上的设置阿里云短信 - 图13