一、写在前面:这东西到底能干啥?
你是不是也遇到过这种情况——后厨忙得热火朝天,前台打印机“滋啦滋啦”响个不停,但店员根本没听见,结果客人等了半天发现订单还没做?
或者你是做聚合支付的,想给商家提供“来单播报”的增值服务,但又不想折腾那些复杂的硬件协议?
芯步这款10W的HTTP接口语音壁挂音箱,就是解决这个问题的。最爽的一点是:你根本不需要懂什么硬件协议,会发HTTP请求就能让它开口说话。
这篇文章我会手把手教你把它对接到自己的项目里,不管你用的是Java、Python、Go还是PHP,思路都一样。咱们不整那些虚的,直接上干货。
二、准备工作:你需要拿到三样东西
在写代码之前,先去芯步的控制台把这三样东西拿到手,缺一不可:
AppID:你的应用唯一标识,相当于“用户名”
AppSecret:你的应用密钥,千万别泄露给前端,这玩意儿就像你家的门禁卡
设备ID:就是那台壁挂音箱的身份证,在控制台能查到
小贴士:如果你有多个门店,每个门店挂一台音箱,那你就要记录好每台音箱的设备ID和门店的对应关系。
三、核心原理:其实就两步
说白了就是:你的服务器 → 芯步的API → 音箱
你的项目收到订单后,调用芯步的HTTP接口,告诉它“给我播报这句话”,然后音箱就响了。整个过程也就几百毫秒的事儿 。
四、签名怎么算?这里有个坑要注意
芯步的接口用了签名验证,这是为了防止别人乱调用你的设备。签名的算法是:
注意这里的 + 是字符串拼接,不是数学加法。ts 是当前的时间戳(秒级)。
我踩过的坑告诉你:
顺序别搞反:先MD5(AppSecret),再拼上ts,然后再整体MD5一次
ts要用同一个:计算签名时用的ts,要和请求参数里的ts保持一致
时间戳要同步:如果服务器时间不准,可能会验证失败
用伪代码写出来就是这样:
五、让音箱开口说话:最核心的代码
重头戏来了。让音箱播报文字的order格式是:
这里的gbk是编码格式,16是音量(具体值看产品手册,一般0-100都有)。
下面我用三种最常见的语言给你写一遍,你照着抄就能跑。
Python版本
Java版本
Go版本
六、实战场景:订单来了怎么播?
假设你在做一套收银系统,每当有新订单进来,就触发播报。这里有几个实际场景的写法:
基础版:简单播报
进阶版:带上金额
芯步的设备支持智能读数字,85元会自动读成“八十五元”,不用你手动转
高阶版:区分平台
如果你想先播放一段提示音再播报,可以用内置铃声命令(具体命令格式参考产品手册)。
七、常见坑点和避坑指南
网络问题:音箱得在线这音箱是走网络的(WiFi或有线),你得确保它连上了网。配网方法参考芯步的官方手册,一般是小程序配网 。
播报内容太长怎么办?每条播报控制在30字以内。太长了店员记不住,而且影响体验。比如“您有新的订单”就够了,不用把整个菜品清单都念出来。
多台音箱同时播?如果你有好几个门店,每台音箱有自己的设备ID。你只需要在请求里把
device参数改成对应的ID就行。注意:device参数支持传多个ID,用逗号隔开。签名老报错?99%的原因是时间戳问题。检查一下你的服务器时间准不准,还有签名算法里的拼接顺序对不对。
私钥别放前端!这点一定要记住。AppSecret如果暴露了,别人就能控制你的音箱乱播广告。正确的做法是:前端调你自己的后端 → 你的后端再调芯步API。
八、还能做什么?不止播订单
这玩意儿除了播订单,能干的事儿多了去了:
排队叫号:扫码取号,叫号时音箱自动播“请A001号到2号窗口”
仓库提醒:库存低于警戒线,播“货架A3区的矿泉水缺货了”
设备报警:冷柜温度异常,播“注意:后厨冷柜温度过高”
只要你能用代码触发HTTP请求,就能让它播报。
九、总结
把芯步的10W语音壁挂音箱对接到自己的项目里,本质上就是调一个带签名的HTTP接口。核心步骤就三步:
拿到AppID、AppSecret、设备ID
用
MD5(MD5(密钥)+时间戳)算出签名发POST请求,order里写上
{"play:gbk:16": "你要说的话"}
整个过程下来,熟练的话十分钟就能跑通。剩下的就是根据你的业务场景,把播报内容和时机调整好就行了。
有什么问题欢迎留言交流,祝大家对接顺利,老板再也不用担心漏单了!