Моя цель - принять платеж через чередующийся или PayPal, как только он будет завершен, предоставить клиенту форму для загрузки файла для отправки мне по электронной почте. Моя форма в моде bootstrap. Я пытаюсь сделать так, чтобы форму нельзя было отправить, пока не будет произведен платеж.
В настоящее время клиент производит платеж, завершенный на ajax. Это отлично работает и отображается с идентификатором платежа. Однако, когда я отправляю другой запрос ajax в тот же документ php, чтобы завершить отправку электронной почты, используя $send_form = $_POST["email_form"];
, переменная $payment_made
потеряла свое значение.
<?php
$send_form = $_POST["email_form"]; //this is sent by ajax. Will be 'yes' if the form to send has been submitted.
switch ($action){
case 'stripe':
//do stripe transaction
//set a variable to indicate payment is complete using transaction ID
$payment_made = $transaction->id;
break;
case 'paypal':
//do paypal transaction
//set a variable to indicate payment is complete using transaction ID
$payment_made = $transaction->id;
break;
}
function sendmail() {
//usual php mail function (works fine)
}
if ($send_form = 'yes' && $payment_made != '') {
sendmail();
}
?>
Моя проблема: как мне использовать переменную $payment_made
для проверки того, что платеж выполнен, чтобы предотвратить несанкционированное использование формы электронной почты?
Я не буду загружать ajax или html код, если он не запрошен, так как все работает правильно, при условии, что я не проверяю переменную $payment_made
перед использованием phpmail()
.