douhan1860 2018-09-07 13:21
浏览 43

条带webhook在TEST模式下正确响应,但在LIVE中没有响应

Can someone please help me get my head round why this stripe webhook responds correctly in test mode (by giving the response "Worked!") but in live mode gives no response! Heres my webhook end point:

<?php
require_once('../vendor/autoload.php');
// Set your secret key: remember to change this to your live secret key in production
// See your keys here: https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("####");

// You can find your endpoint's secret in your webhook settings
$endpoint_secret = '####';

$payload = @file_get_contents('php://input');
$sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];
$event = null;

try {
  $event = \Stripe\Webhook::constructEvent(
    $payload, $sig_header, $endpoint_secret
  );
} catch(\UnexpectedValueException $e) {
  // Invalid payload
  http_response_code(400); // PHP 5.4 or greater
  exit();
} catch(\Stripe\Error\SignatureVerification $e) {
  // Invalid signature
  http_response_code(400); // PHP 5.4 or greater
  exit();
}

        // This function is leveraged to search through the JSON for specific values
        function searchArrayValueByKey(array $array, $search) {
            foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $key => $value) {
                if ($search === $key)
                return $value;
            }
                return false;
            }
$input = @file_get_contents("php://input");         // this gets the POST data provided when the webhook pings this page
$event_json = json_decode($input, TRUE);            // decode the JSON, and TRUE turns it into a multidimensional array
$type = searchArrayValueByKey($event_json, 'type'); // Check the type of event sent from Stripe.com - example "charge.succeeded"
switch ($type) {                                    // depending on the event fired by Stripe, do something different.
        case "account.updated":
        echo 'Worked!';
        break;
        case "balance.available":
        echo 'Worked!';
        break;
    case "charge.captured":
        echo 'Worked!';
        break;
    case "charge.refunded":
        echo 'Worked!';
        break;
    case "charge.succeeded":
        echo 'Worked!';
        break;
    case "charge.updated":
        echo 'Worked!';
        break;
    case "charge.failed":
    echo 'Worked!';
        break;
    case "charge.dispute.created":
        echo 'Worked!';
        break;
    case "charge.dispute.updated":
        echo 'Worked!';
        break;
    case "charge.dispute.closed":
        echo 'Worked!';
        break;
    case "coupon.created":
        echo 'Worked!';
        break;
    case "coupon.deleted":
        echo 'Worked!';
        break;
    case "customer.created":
        echo 'Worked!';
        break;
    case "customer.updated":
        echo 'Worked!';
        break;
    case "customer.deleted":
        echo 'Worked!';
        break;
    case "customer.card.created":
        echo 'Worked!';
        break;
    case "customer.card.updated":
        echo 'Worked!';
        break;
    case "customer.card.deleted":
        echo 'Worked!';
        break;
    case "customer.discount.created":
        echo 'Worked!';
        break;
    case "customer.discount.updated":
        echo 'Worked!';
        break;
    case "customer.discount.deleted":
        echo 'Worked!';
        break;
    case "customer.subscription.created":
    echo 'Worked!';
        break;
    case "customer.subscription.updated":
        echo 'Worked!';
        break;
    case "customer.subscription.deleted":
        echo 'Worked!';
        break;
    case "customer.subscription.trial_will_end":
        echo 'Worked!';
        break;
    case "invoice.created":
        echo 'Worked!';
        break;
    case "invoice.updated":
        echo 'worked!';
        break;
    case "invoice.payment_succeeded":
        echo 'Worked!';
        break;
    case "invoice.payment_failed":
        echo 'Worked!';
        break;
    case "invoiceitem.created":
        echo 'Worked!';
        break;
    case "invoiceitem.updated":
        echo 'Worked!';
        break;
    case "invoiceitem.deleted":
        echo 'Worked!';
        break;
    case "plan.created":
        echo 'Worked!';
        break;
    case "plan.updated":
        echo 'Worked!';
        break;
    case "plan.deleted":
        echo 'Worked!';
        break;
    case "transfer.created":
        echo 'Worked!';
        break;
    case "transfer.updated":
        echo 'Worked!';
        break;
    case "transfer.paid":
        echo 'Worked!';
        break;
    case "transfer.failed":
        echo 'Worked!';
        break;
    default:
        // An error has occured, this was not a Stripe.com event - log into your Stripe.com account and check the log.

}
http_response_code(200);
?>

I have made sure to change my secret key and endpoint key when switching between live and test.

Ive tried everything! Even tried contacting stripe to no avail, they just said there is nothing they can do on their end.

Any insight on what I'm doing wrong would be much appreciated.

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
    • ¥15 这种微信登录授权 谁可以做啊
    • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
    • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
    • ¥15 网络设备配置与管理这个该怎么弄
    • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
    • ¥20 西门子S7-Graph,S7-300,梯形图
    • ¥50 用易语言http 访问不了网页
    • ¥50 safari浏览器fetch提交数据后数据丢失问题
    • ¥15 matlab不知道怎么改,求解答!!