【发布时间】:2016-07-25 10:38:02
【问题描述】:
我正在尝试在我的应用程序中实现 Braintree。我尝试使用 webhook 来获取通知。正如 webhooks 的文档所说,我 webhooks 将 http post 请求发送到目标 url。在我的目标网址中,我编写了以下代码。
router.post('/webhooks',function(req,res){
gateway.webhookNotification.parse(
req.body.bt_signature,
req.body.bt_payload,
function(err,webhookNotification){
if(err){
throw err;
}
res.send("[Webhook Received " + webhookNotification.timestamp + "] | Kind: " + webhookNotification.kind + " | Subscription: " + webhookNotification.subscription.id)
})
})
我的通知是针对所有提供的列表。但是当我订阅时,我没有收到任何通知或我不知道如何获得通知。但是当我将路由选项更改为 GET 请求并编写以下代码时
router.get('/webhooks',function(req,res){
sampleNotification = gateway.webhookTesting.sampleNotification(
braintree.WebhookNotification.Kind.SubscriptionWentPastDue,
"myId"
);
gateway.webhookNotification.parse(
sampleNotification.bt_signature,
sampleNotification.bt_payload,
function(err,webhookNotification){
if(err){
throw err;
}
res.send("[Webhook Received " + webhookNotification.timestamp + "] | Kind: " + webhookNotification.kind + " | Subscription: " + webhookNotification.subscription.id)
})
})
我收到通知详细信息。现在我担心的是我应该声明 braintree.WebhookNotification.Kind 还是在事件发生时自行声明?如何在订阅(或任何事件)时获得通知。在 POST 方法中?
【问题讨论】:
-
您在寻找什么样的 webhook?是为子商户批准还是支付?
-
我正在寻找付款@NnN
-
支付 webhook 有 2 种类型,一种用于transaction disbursed,另一种用于disbursement。如果您正在寻找已支付的交易,那么您将在每天结束时收到对您的网络方法的回复,或者如果您正在寻找支付您只会在几天后得到回复。我希望你已经在你的沙箱中创建了 webhook URL...
-
是的,我已经创建了 webhook url(网络上的公共 url)。现在如何获得通知我应该检查沙箱仪表板的通知吗? @NnN
-
不,根据文档,您的 POST 方法应该有参数,BrainTree 将在函数调用期间向该参数发送响应。您可以通过将响应值保存到数据库或创建日志文件来检查响应值。
标签: node.js webhooks braintree