У меня здесь происходит несколько вещей.Пожалуйста, будьте терпеливы, поскольку я пытаюсь обрисовать это в деталях.Я пытаюсь добавить отмену и добавить параметры плана (ов) на страницу учетной записи клиента.Есть несколько планов на выбор (1-5), и они могут иметь любой или все, что они выберут.
1.> Я пытаюсь добавить план (ы) для существующего клиента Stripe.Я заметил, что каждый раз, когда нажимается кнопка оплаты чередования, эта полоса создает новый идентификатор клиента, даже если он существует в базе данных.Я хочу, чтобы они могли нажимать «добавить план» (для конкретного плана), затем они перенаправляются на страницу просмотра, где они могут нажать кнопку «Оплатить сейчас», чтобы оплатить, и программа обновит новый план в своем существующем.Полосатый аккаунт.ТАКЖЕ, в идеале я хотел бы, чтобы дата продления плана соответствовала их существующей месячной дате продления (начисления) другим имеющимся у них планам.
2.> Я пытаюсь отменить план (ы) для существующего клиента Stripe,Я хочу, чтобы они могли нажимать кнопку «Отмена» (для определенного плана доступно несколько вариантов), перенаправляться на страницу отмены отзыва, где они могут затем нажать кнопку «Отмена» и ... оттуда я хочу обновить существующего клиента в Stripeотменить этот конкретный план (с помощью cancel_at_period_end).
Я могу создать клиента, оплатить, планы и т. д. при регистрации.Оттуда я сохранил идентификатор клиента Stripe в моей базе данных.Помимо идентификатора Stripe в моей базе данных, я понятия не имею, как получить необходимые данные или использовать их для выполнения этих шагов, о которых говорилось выше.
Stripe API очень хорош, но некоторые вещи очень широкии сбивает с толку меня (кто-то новичок в программировании).
Любая помощь будет оценена.Если бы вы могли привести примеры с объяснениями, это было бы невероятно!Заранее спасибо.
Ниже приведен код:
require_once('stripe-php-6.28.0/init.php');
$stripe = [
"secret_key" => "sk_test_secret",
"publishable_key" => "pk_test_publish",
];
\Stripe\Stripe::setApiKey($stripe['secret_key']);
$token = $_POST['stripeToken'];
$email = $_POST['stripeEmail'];
$mplan = 'plan_m'; //I pulled this from stripe dashboard
//cancel m category------------------------------------
if(isset($mcancel)){
echo "<p>You are about to cancel your Subscription.</p>" . "<p>Press CANCEL button, below, to complete, or return to your <a href=http://example.com/Account-Details>Account Details page.</a></p>";
?>
<form id="mcancelnow" name="mcancelnow" action=""<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>>
<input type="submit" value="CANCEL Subscription NOW" id="mcancelnow" name="mcancelnow" /><br /><br />
<?php
}
if(isset($mcancelnow)){
$sqlstripem = "SELECT * FROM idaccount WHERE ID = '".$_SESSION['session']."'";
$resultstripem = mysqli_query($dbcon, $sqlstripem) or die("Error");
while($row = mysqli_fetch_assoc($resultstripem)){
echo "<br />" . "Stripe Customer ID: " . $row['stripecustid'] . "!";
$customeridstripe = $row['stripecustid'];
echo $customeridstripe; // is returning expected result if I take the isset condition out.
}
// Retrieve the request's body and parse it as JSON:
$input = @file_get_contents('php://input');
$event_json = json_decode($input);
// Do something with $event_json
http_response_code(200); // PHP 5.4 or greater
//update customer to cancel m plan on STRIPE
$cu = \Stripe\Customer::retrieve($customeridstripe);
$subscription = $cu->subscription;
$plan = $cu->plan($mplan);
$plan->active = false;
$cu->save();
echo "subscription: " . $subscription . "plan: " . $plan; //nothing returned for subscription or plan
echo "token: " . $token; //nothing returned for token
}
?>
Я обновил код по предложению ниже.Теперь я получаю следующие две ошибки: 1.) Уведомление о полосе: неопределенное свойство Stripe \ Customer: подписка 2.) Неустранимая ошибка PHP: необработанная ошибка: вызов неопределенного метода Stripe \ Customer :: plan ()
Я обновил часть кода ниже.Я устранил ошибку №1, выше:
//update customer to cancel m plan on STRIPE
$cu = \Stripe\Customer::retrieve($customeridstripe);
echo $cu . "<br />"; //returns expected result
$subid = $cu->subscriptions->data[0]->id;
echo "subscription id: " . $subid . "<br />"; //returns expected result
$subid2 = \Stripe\Subscription::retrieve($subid);
echo "subid2: " . $subid2 . "<br />"; //returns expected result
$plan = $subid2->id('plan_idhere');
echo "plan id: " . $plan . "<br />"; //nothing returned CODE HALTS HERE
$planresult = $plan->active = false;
echo "plan result: " . $planresult . "<br />"; //nothing returned
$cu->save();
echo "sub id: " . $subid; //nothing returned