一个人如何处理在布伦特里网络挂接(How does one handle Webhooks in B

2019-09-22 12:50发布

我试图使用布伦特里网络挂接认购交易,但一直无法得到我的页面进行验证。

从布伦特里: https://www.braintreepayments.com/docs/php/webhooks/destination_verification

当您尝试添加的目的地,我们的服务器将GET请求提供的网址与命名bt_challenge查询参数。 此查询参数应该传递给验证方法。 调用此方法的结果应该被作为响应返回的身体。

Braintree_WebhookNotification::verify(bt_challenge_param);

首先,我想在的NodeJS(如我们的交易是成功的做到了这一点的方式):

//WEBHOOK GET PROCESS FOR BRAINTREE SUBSCRIPTION
app.get('/getwebhook', function(req, res){

    var bt_challenge_param = req.param('bt_challenge_param', null);
    var jsObj = new Object();

    jsObj.response = gateway.webhookNotification.verify(bt_challenge_param);

    res.json(JSON.stringify(jsObj));
});

在我的PHP页面沟通与过程的NodeJS并把结果在体内。 一旦验证失败,我在PHP直接写了一个测试页面:

<?php
require_once 'lib/Braintree.php';

Braintree_Configuration::environment('production');
Braintree_Configuration::merchantId('mymid');
Braintree_Configuration::publicKey('mypubkey');
Braintree_Configuration::privateKey('myprodkey');

$bt_challenge = "";
if(isset($_GET['bt_challenge']))
{
    $bt_challenge = $_GET['bt_challenge'];
}


?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  <title>Webhooks</title>
  <meta name="viewport" content="width=device-width; initial-scale=1.0" />
</head>
<body>
<?php
if(isset($bt_challenge) && $bt_challenge != ""){
    echo Braintree_WebhookNotification::verify($bt_challenge);
}
?>
</body>
</html>

然而,这也验证失败。 不知道什么是错的,因为没有测试以验证或什么是错的任何迹象。 我试图联系布伦特里的支持,但没有响应返回。

Answer 1:

你需要返回的结果

Braintree_WebhookNotification::verify($bt_challenge);

作为响应的主体 ,一个HTML文件,是依次的响应的主体不是身体。 换句话说,你的整个文件应该是这样的:

<?php
require_once 'lib/Braintree.php';

Braintree_Configuration::environment('production');
Braintree_Configuration::merchantId('mymid');
Braintree_Configuration::publicKey('mypubkey');
Braintree_Configuration::privateKey('myprodkey');

$bt_challenge = "";
if(isset($_GET['bt_challenge']))
{
    $bt_challenge = $_GET['bt_challenge'];
}
if(isset($bt_challenge) && $bt_challenge != ""){
    echo Braintree_WebhookNotification::verify($bt_challenge);
}
?>

如果您有任何疑问,请随时接触到布伦特里支持 。

披露:我在布伦特里工作。



文章来源: How does one handle Webhooks in BrainTree