交易信息即时通知

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": "[email protected]",
        "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]

results matching ""

    No results matching ""