Twilio WhatsApp模板快速回复:如何关联点击对应的订单编号
解决方案
核心思路:利用Twilio快速回复按钮的payload字段传递订单编号
Twilio的WhatsApp快速回复按钮支持设置payload属性,这个字段是隐藏的后端识别参数,不会展示给用户,但用户点击按钮时,Twilio会把这个payload值发送到你的webhook接口。这样按钮文本可以保持静态的“View More”,同时通过payload绑定对应的订单编号。
具体实现步骤
- 发送模板消息时,在快速回复按钮的配置中,将
payload设置为订单编号(比如1263)或者包含订单号的标识字符串(比如view_order_1263) - 示例代码(以Twilio Python SDK为例):
from twilio.rest import Client account_sid = '你的账号SID' auth_token = '你的认证Token' client = Client(account_sid, auth_token) message = client.messages.create( from_='whatsapp:+14155238886', body='你的订单状态更新:已发货', to='whatsapp:+用户手机号', quick_reply={ "type": "text", "body": "View More", "payload": "order_1263" # 这里绑定订单编号 } ) print(message.sid)
- 当用户点击“View More”按钮后,Twilio会向你配置的webhook地址发送一个POST请求,请求体中包含
Body字段(值为按钮文本“View More”)和Payload字段(值为你设置的order_1263) - 你的后端接口只需解析
Payload字段,提取订单编号(比如截取order_后面的数字),即可调用对应的订单详情接口
备选方案:结合Twilio会话存储上下文
如果需要适配多会话场景,可以在发送通知时,将订单编号存储到Twilio的会话属性中:
- 发送消息时通过
attributes参数存储订单信息:
message = client.messages.create( from_='whatsapp:+14155238886', body='你的订单状态更新:已发货', to='whatsapp:+用户手机号', quick_reply={"type": "text", "body": "View More"}, attributes='{"order_id": "1263"}' # 存储订单ID到会话属性 )
- 用户点击按钮后,在webhook请求中可以通过
Attributes字段获取到存储的订单编号,进而关联到对应的订单
内容的提问来源于stack exchange,提问作者codeGood
相关产品推荐
相关产品推荐

