Я установил webhook в своей учетной записи stripe
и, выполняя тестирование webhook с панели инструментов полосы, я получаю результат успеха с полосы.Я вижу ответ в предварительном просмотре.
Но, выполняя эту вещь из браузера и нажимая на тот же URL-адрес веб-крючка, я ничего не получаю в своем ответе.
Вот код, которым я являюсьчтобы заставить его работать.
======================================
include('config.php');
function searchArrayValueByKey(array $array, $search)
{
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($array)) as $key => $value)
{
if ($search === $key)
return $value;
}
return false;
}
require_once('vendor/autoload.php');
\Stripe\Stripe::setApiKey("Stripe Key");
// This function is leveraged to search through the JSON for specific values
$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
if(isset($type))
{
$type = searchArrayValueByKey($event_json, 'customer.subscription.updated');
}
else
{
$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":
// do something
break;
case "balance.available":
// do something
break;
case "charge.captured":
// do something
break;
case "charge.refunded":
// do something
break;
case "charge.succeeded":
// do something
break;
case "charge.updated":
// do something
break;
case "charge.failed":
// do something
break;
case "charge.dispute.created":
// do something
break;
case "charge.dispute.updated":
// do something
break;
case "charge.dispute.closed":
// do something
break;
case "coupon.created":
// do something
break;
case "coupon.deleted":
// do something
break;
case "customer.created":
// do something
break;
case "customer.updated":
// do something
break;
case "customer.deleted":
// do something
break;
case "customer.card.created":
// do something
break;
case "customer.card.updated":
// do something
break;
case "customer.card.deleted":
// do something
break;
case "customer.discount.created":
// do something
break;
case "customer.discount.updated":
// do something
break;
case "customer.discount.deleted":
// do something
break;
case "customer.subscription.created":
// do something
break;
case "customer.subscription.updated":
$id = searchArrayValueByKey($event_json, 'id');
$customer_id = searchArrayValueByKey($event_json, 'customer');
$created = searchArrayValueByKey($event_json, 'created');
$subscription = searchArrayValueByKey($event_json, 'subscription');
$period_start = searchArrayValueByKey($event_json, 'period_start');
$period_end = searchArrayValueByKey($event_json, 'period_end');
$insert_into = mysqli_query($conn,"insert into ext_payment_data set
subscription = '".$subscription."',
add_date = '".$created."',
subscr_id = '".$subscription."',
subscribe_from_date = '".$period_start."',
subscribe_to_date = '".$period_end."',
response = '".json_encode($event_json)."'
");
break;
case "customer.subscription.deleted":
// do something
break;
case "customer.subscription.trial_will_end":
// do something
break;
case "invoice.created":
// do something
break;
case "invoice.updated":
// do something
break;
case "invoice.payment_succeeded":
// do something
break;
case "invoice.payment_failed":
// do something
break;
case "invoiceitem.created":
// do something
break;
case "invoiceitem.updated":
// do something
break;
case "invoiceitem.deleted":
// do something
break;
case "plan.created":
// do something
break;
case "plan.updated":
// do something
break;
case "plan.deleted":
// do something
break;
case "transfer.created":
// do something
break;
case "transfer.updated":
// do something
break;
case "transfer.paid":
// do something
break;
case "transfer.failed":
// do something
break;
default:
echo "Error";
}
$myfile = fopen("auto_response.txt", "a+") or die("Unable to open file!");
file_put_contents('auto_response.txt', print_r($event_json,true),FILE_APPEND | LOCK_EX);
fclose($myfile);
==================
Здесь при записи ответа в файл auto_response.txt
я могу сохранитьэти данные в файле, но, сохраняя эти данные в базе данных, я ничего не получаю.
Так что у кого-нибудь есть какое-то решение для этого, так как я не могу сохранить ответ чередования в моей базе данных mysql.