我使用了Braintree的Sandbox帐户来重复订阅。 webhook结束URL的验证成功。但即使在成功完成订阅后,我也没有向我的服务器发送任何推送通知。我正在使用PHP环境来获取POST详细信息。以下是我使用的代码段。
<?php
require_once(app_classes.'DB.Class.php');
require_once(app_classes.'util.Class.php');
require_once app_classes.'braintree/lib/Braintree.php';
Braintree_Configuration::environment(bt_environment);
Braintree_Configuration::merchantId(bt_merchant_id);
Braintree_Configuration::publicKey(bt_public_key);
Braintree_Configuration::privateKey(bt_private_key);
if(
isset($_POST["bt_signature"]) &&
isset($_POST["bt_payload"])
) {
$webhookNotification = Braintree_WebhookNotification::parse(
$_POST["bt_signature"], $_POST["bt_payload"]
);
$message = "[Webhook Received " . $webhookNotification->timestamp->format('Y-m-d H:i:s') . "] "
. "Kind: " . $webhookNotification->kind . " | "
. "Subscription: " . $webhookNotification->subscription->id . "\n";
$subDetails = array( 'data' => $message );
DB::insert('subscription_notifications', $subDetails);
}
return 200;
?>
服务器具有SSL证书。如果我需要做任何事情才能让它工作,请告诉我。
答案 0 :(得分:2)
最后我得到了解决方案。这是与SSL证书相关的问题。对于所有POST尝试,连接都以HTTP状态599关闭。发生这种情况是因为服务器中缺少中间证书。我们添加了证书。现在我可以访问Braintree的推送通知。