跳到主要内容

API技术集成

Webhooks概述

Midasbuy 提供 Webhooks 和订单 API 给开发者集成。

事件示例
  • 用户验证
  • 支付结果通知

在用户输入用户 ID,并选择了server_id后,Midasbuy 会发起用户验证。Webhook 中会包含user_id和server_id。开发者可以根据user_id和server_id判断用户是否满足充值的条件,如果不满足则返回对应的错误。如果开发者期望Midasbuy根据用户信息来做进一步的判断,可以将需要校验的条件也回传到 Midasbuy,Midasbuy 来做进一步的校验。参考风控锁区

当Midasbuy从Paypal等支付渠道获取到支付结果后,会给开发者的服务器发送支付订单支付成功的通知。开发者收到这个通知后并校验完签名后,可以给用户提供对应的商品。如果因为用户离线等原因导致商品暂时无法提供,可以给 Midasbuy返回对应的错误,Midasbuy 会继续推送。参见通知

在订单状态发生变化的时候,会有对应的支付订单状态变化通知,状态 以“order_status”字段来表示:

订单状态描述开发者处理
Created用户创建订单记录订单创建
Paid订单支付成功将用户购买的商品计入账户
Finished商户发货成功记录订单发货成功,用于对账和客服等用途
Refunded用户退款成功将用户的商品移除

下图展示的主要的事件变化流程。

如果在用户购买商品的时候,有对应的营销赠送的行为发生,会有单独的营销订单通知。参见 promotion-notification

另外Midasbuy也提供的订单查询的 API,用于在真正提供商品前,校验订单的真实性。参见 order query

Webhooks 分类

从是否会导致用户界面流程中断的角度,Midasbuy将事件分为同步事件和异步事件

  • 同步事件

    用户会等待事件的应答, 如果应答失败,则流程中断,用户无法继续流程。同步事件系统超时后,系统不会主动发起重试。比如用户验证,扩展功能中描述的商品验证事件。

  • 异步事件

    支付订单结果通知和营销订单结果通知,用户不需要等待事件的应答。如果调用您的服务器超时,Midasbuy会自动发起重试

名称类型必选/ 可选
PaymentNotification异步必选
ProductValidate同步可选
PromotionNotification异步可选
UserValidate同步必选

获取Webhooks联调参数

获取到到联调用的 app_id,以及 Webhooks key。另外您需要准备好接受 Webhooks 通知的URL 地址(Midasbuy提供统一的 Webhooks URL 来发送各个事件,因此您只需要准备一个地址即可).请开发者严格区分沙箱和

参数获取/设置步骤

  1. 打开店铺
  2. 点击 "服务集成与分区配置" 标签并选择 "Webhook" 标签
  3. 再 "Webhook服务器" 中指定服务器地址,格式如 https://example.com . 沙箱和现网的地址需要分别配置.
  4. 用于验证 webhook 的密钥会自动生成,沙箱和现网的密钥也是独立的

Webhooks API模拟

您可以使用 Webhooks API 模拟页面直接给您的服务器模拟发送各种Webhooks 事件。为了减少您切换密钥的成本,Midasbuy不提供在模拟页面输入webhooks私钥。Midasbuy会使用开发者应用的的沙箱私钥对请求进行签名,开发者需要使用到从商户平台获取到到webhooks 的沙箱公钥进行签名的验证

处理 Webhooks

Midasbuy们提供了如何正确处理Webhooks 的 DEMO,您可以参考这个 DEMO 来处理Webhooks。参见 buy-api-library