我已经使用Braintree的沙盒帐户进行定期订阅。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证书。请让我知道是否需要做任何事情才能使其正常工作。
终于我找到了解决方案。这是与SSL证书有关的问题。对于所有POST尝试,连接均以HTTP状态599关闭。发生这种情况的原因是服务器中缺少中间证书。我们添加了证书。现在,我可以从Braintree访问推送通知。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句