0
PayPal APIを使用して支払い処理システムを作成しています。問題は、ユーザーをPayPalにリダイレクトすると、情報の後にセッション内に「paypal_hash」が格納されることですPayPalシステムに入力されると、ユーザーはWebページにリダイレクトされ、 'paypal_hash'はもう存在しません。
process_payment.php:このコードが実行された後2ページリダイレクト後のPHPセッションデータワイプ
session_start();
$payment->create($api);
//Generate hash
$hash = md5($payment->getId()); // Will encrypt better at a later point
$_SESSION['paypal_hash'] = $hash;
//Prepare and execute transacting storage
$store = $db->prepare("
INSERT INTO transactions_paypal (user_id, payment_id, hash, complete) VALUES (:user_id, :payment_id, :hash, 0)
");
$store->execute([
'user_id' => $_SESSION['user_id'],
'payment_id' => $payment->getId(),
'hash' => $hash
]);
header('Location: ' . $paypal_url); // the url where the user pays via a paypal.com site
、ユーザはpay.phpにリダイレクトされる。
session_start();
var_dump($_SESSION); // This returns an empty array
$paymentId = $db->prepare("
SELECT payment_id
FROM transactions_paypal
WHERE hash = :hash
");
$paymentId->execute([
'hash' => $_SESSION['paypal_hash']
]);
ハッシュがデータベースに適切に格納されているが、後にセッションに保持されていませんPayPalからリダイレクトされています。
返すときにドメインがまったく同じであることを確認します。 https://www.myDomainから開始し、paypalがhttps:// myDomainにリダイレクトする場合。 Cookieは、サブドメインに対してワイルドカードされていることが指定されていない限り、ドメイン固有です。 – DevionNL
まったく同じURLですか? domain.comとwww.domain.comはどうですか? –
ありがとう、それはまさに私の問題でした。 1つのファイルにはhttps://があり、1つのファイルにはhttps:// wwwがあります。それはそれを解決しました! –