На странице аккаунта вы можете нажать «Активировать категорию», и он перенаправит вас на страницу обзора, где платеж будет завершен с указанным кодом.При перенаправлении на страницу обзора кнопка показывает и все правильные данные.Однако после завершения оплаты все останавливается.Есть еще три актива, чтобы следовать как другие варианты после этого.Кроме того, я должен убедиться, что если страница обновляется после завершения, карта не будет заряжаться снова каждый раз, когда страница обновляется.Многозарядка с каждым обновлением была оригинальным началом моих проблем.Он повторял один и тот же токен, который использовался для нескольких отдельных сборов.
php вверху файла:
<?php
session_start();
require_once('insert.php');
require_once('stripe-php-6.28.0/init.php');
//set Stripe key
$stripe = [
"secret_key" => "sk_test_xxxx",
"publishable_key" => "pk_test_xxxx",
];
\Stripe\Stripe::setApiKey($stripe['secret_key']);
echo 'stripe key: ' . $stripe['secret_key'];//returns expected result
?>
Затем позже в том же файле:
$matchActivate = $_POST['matchactivate'];
if(isset($matchActivate)){
?>
<form id="mactivatenow" name="mactivatenow" action="" method="post"<?php
echo htmlspecialchars($_SERVER["PHP_SELF"]);?>>
<input type="hidden" name="matchactivatenow" id="matchactivatenow"
value="true">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_xxxx"
data-amount=$pricetotal
data-name="example.com"
data-description="Category Subscription(s)"
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-currency="usd"
data-billing-address="true"
data-zip-code="true"
data-label="Add Match Category ($3/monthly)"
data-panel-label="Add Match Category ($3/monthly)">
</script>
<?php
}
$session = $_SESSION['session'];
//get stripe token for add category transactions----------------
$token = $_POST['stripeToken'];
$email = $_POST['stripeEmail'];
echo 'token: ' . $token . '<br />';
echo 'email: ' . $email . '<br />';
echo 'stripe key: ' . $stripe['secret_key'];
if(empty($_POST['stripeToken'])){
exit();
echo 'NO token';
}else{
//this is where the magic should happen after completing payment.
После оплатытолько ключ API полосы нашло свое отражение, и больше ничего не происходит.Ни в моей базе, ни в полоску.Я думаю, что это связано с тем, что после завершения платежа условие isset $_POST
теряется для $matchActivate
после обновления страницы из платежа.
Я попытался перенаправить, указав мой ключ API в файле выше.и условие if(empty($stripeToken))
в файле перенаправления, получающем данные, и затем оно говорит, что НЕТ API-ключ чередования установлен.Я также попробовал header("Location:http://example.com")
.
Мне нужно сделать это еще для трех вариантов выбора, которые показаны здесь в том же файле.
Есть идеи?Любая помощь будет оценена