Bothub.AI 用户手册简体中文版
Primary version
Search
K
Comment on page

交易信息通知

让您第一时间获取用户在Messenger上的订单

交易信息即时通知

Bothub提供对基于Messenger的交易提供了通知机制。商户可以通过实现bothub定义的数据交换机制,让用户在Messenger里的任何和交易相关的操作都即时反应到商户的系统中,便于商户进行库存管理,发货操作和客服回应。
商户可以在后台的“设置”界面填写交易通知链接
作为示例,此处以订单通知为例说明通知的工作方式。 订单通知是指当有Facebook用户通过Messenger完成支付后,若商户填写了订单通知链接,bothub会向此地址发送一个Post格式的Http订单通知请求。请求的参数如下:

参数说明

参数
request.timestamp
unix时间戳,以秒为单位(e.g. 1401111222)
request.token
令牌,以确认请求发送者为Bothub。令牌计算方式见下文。
request.request_id
该请求的唯一标识符
order.products
商品信息,为数组,其中每个元素如下
order.products.id
商品外部id,由商户在合作时提供给Bothub
order.products.name
商品名称
order.product.price_single
单个商品价格
order.products.amount
商品数量
sender.id
用户的facebook id
sender.email
若此facebook id做过account linking并绑定了邮箱,则此处提供之
sender.phone_number
若此facebook id做过account linking并绑定了手机号,则此处提供之
sender.username
若此facebook id做过account linking并绑定了用户名,则此处提供之
payment.requested_user_info.contact_name
联系人的姓名
payment.requested_user_info.contact_email
联系人的邮箱
payment.requested_user_info.contact_phone
联系人的手机号
payment.requested_user_info.shipping_address.country
国家
payment.requested_user_info.shipping_address.state
payment.requested_user_info.shipping_address.city
城市
payment.requested_user_info.shipping_address.street_1
街道信息
payment.requested_user_info.shipping_address.street_2
补充街道信息
payment.requested_user_info.shipping_address.postal_code
邮编
payment.payment_credential.provider_type
付款方式
payment.payment_credential.charge_id
付款追踪id
payment.shipping_option_id
用户选择的送货方式
payment.amount.currency
用户支付的货币
payment.amount.amount
用户支付的数量
payment.shipping_option_id
用户选择的送货方式
summary
订单概要
summary.price
订单不含税不含运费的价格
summary.tax
订单税
summary.shipping_cost
订单运费
summary.sub_total
订单总价
summary.currency
订单货币
summary.order_identifier
订单唯一标识
  • 请求样例
{
"request": {
"timestamp": 1401122222,
"token": "4r2$s003a!@3",
"request_id": "49192801"
},
"sender": {
"id": "123456",
"phone_number": "18729182212",
"email": "[email protected]",
"username": "anonymous"
},
"payment": {
"requested_user_info": {
"shipping_address": {
"street_1": "1107th, Yuyuan Road",
"street_2": "",
"city": "Hongji Park",
"state": "MI",
"country": "US",
"postal_code": "94025"
},
"contact_name": "Peter Chang",
"contact_email": "[email protected]",
"contact_phone": "+15105551234"
},
"payment_credential": {
"provider_type": "paypal",
"charge_id": "ch_18tmdBEoNIH3FPJHa60ep123"
},
"amount": {
"currency": "USD",
"amount": "29.62"
},
"shipping_option_id": "123"
},
"order": {
"products": [
{
"id":"P121",
"name": "Sample good",
"price_single": 2,
"currency": "USD"
}
]
}
}
  • Token的算法: bothub会为每一个page分发一个密钥secret,所有在此page上进行的交易,token的计算方式为
    token = sha256(timestamp + secret) 其中timestamp会在请求中传送给商户。例如,如timestamp为1482139994, secret为MTg2MjE1NzYyMDJf, 则token的算法为sha1('1482139994MTg2MjE1NzYyMDJf'), 结果为d2dff7379293216aa1e187dafb765a9aa63c7761
  • 一个具体的示例请见这里

返回值

商户应对bothub发送的通知信息,应在处理完毕后返回200.
  • 成功调用样例
{
'request_id': "F4js0Za2" //此值和请求的request_id一致
}
  • 失败调用样例
{
"error" : {
"message": "Missing payment",
"type": "InvalidParamException",
"code": 10000,
"error_subcode": 1234567,
"request_id": "F4js0Za2"
}
}

重发机制

为防止商户因某些原因未能收到消息,Bothub提供了交易信息重发机制。
若商户对bothub发送的交易信息通知请求没有返回status=200,或超时仍未响应,bothub会在一段时间之后重发该请求,若仍收到status不等于200,或者超时的情况,则会再重发。这个过程一共会重复7次。每次调用的时候request_id都会保持一致,以免接收方重复处理。
第1次重发:发送后60秒
第2次重发:第1次重发后120秒
第3次重发:第2次重发后5分钟
第4次重发:第3次重发后30分钟
第5次重发:第4次重发后1小时
第6次重发:第5次重发后6小时
第7次重发:第6次重发后1天
若第7次重发仍未获得正确的回应,之后不再重发。

其他交易通知

Bothub将会陆续推出多种交易通知,以让Messenger上的交易和您的系统无缝链接。如果您有定制需求请告知 [email protected]