Я пытаюсь использовать веб-ссылки BrainTree для транзакций подписки, но не смог проверить мою страницу.
От BrainTree: https://www.braintreepayments.com/docs/php/webhooks/destination_verification
При попытке добавить пункт назначения наши серверы сделают запрос GET указанному URL с параметром запроса 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>
Однако это слишком неудачная проверка. Не уверен, что не так, поскольку нет проверки на проверку или каких-либо признаков того, что не так. Я попробовал связаться с BrainTree, но без ответа.