交易信息通知

Last updated 8 months ago

让您第一时间获取用户在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": "mike@sample.com",
"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": "peter@anemailprovider.com",
"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上的交易和您的系统无缝链接。如果您有定制需求请告知 support@bothub.ai