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]
Last modified 5yr ago