Paypal SDK не регистрируется в базе данных
Я пытаюсь сделать заявку на оплату через Paypal, на самом деле я следую учебному пособию о том, как использовать Paypal-SDK, просто чтобы узнать, как его использовать, и даже когда платеж происходит успешно (в этой части он работает просто отлично), по какой-то причине я просто могу заставить приложение вставлять данные в базу данных для регистрации транзакции.
Я уже пробовал некоторые вещи, чтобы исправить это:
1) Я уже проверяю имя базы данных, пароль и разрешения.
2) Я уже пытаюсь обратиться за помощью к людям, которые делают учебник (на самом деле, я пытаюсь дважды)
3) Я уже пытаюсь обратиться за помощью в github Paypal-SDK
4) Я уже пытаюсь попросить других людей / мест / сайт
5) Да, я уже проверил все журналы, журнал Paypal, журнал apache и журнал mysql, и он не возвращает мне сообщений об ошибках.
Итак, вот я в Stackru, прося помощи, чтобы исправить это..
Ссылка на учебник находится в YouTube и это:
https://www.youtube.com/playlist?list=PLfdtiltiRHWE_c8jjW5OeweL1c_8uqcnW
это код, который у меня есть:
start.php
<?php
use PayPal\Rest\ApiContext;
use PayPal\Auth\OAuthTokenCredential;
session_start();
$_SESSION['user_id'] = 1;
require __DIR__ . '/../vendor/autoload.php';
// API
$api = new ApiContext(
new OAuthTokenCredential(
'Abxr4WOfNsBDlEvCmDdpNnUNdTuRx2PcAALwF1IBh978K42B2q5z8VZJaURCpJtNXO0H3XefO1q-zoSt', // Client Id
'EM81APj_87_BVyLsltZLqW5ZOhsE9H57mTG13sbrlmGhXPu2DLtuYOGHhDMzZir1rsLY2RgUhiwsyTz_' // Secret
)
);
$api->setConfig(['mode' => 'sandbox',
'http.ConnectionTimeOut' => 30,
'log.LogEnabled' => true,
'log.FileName' => 'logPaypal.txt',
'log.LogLevel' => 'FINE',
'validation.level' => 'log'
]);
$db = new PDO('mysql:host=localhost;dbname=paypal', 'root', 'kulturu01');
$user = $db->prepare("
SELECT * FROM users
WHERE id = :user_id
");
$user->execute(['user_id' => $_SESSION['user_id']]);
$user = $user->fetchObject();
?>
payment.php
use PayPal\Api\Payer;
use PayPal\Api\Details;
use PayPal\Api\Amount;
use PayPal\Api\Transaction;
use PayPal\Api\Payment;
use PayPal\Api\RedirectUrls;
require '../scr/start.php';
$payer = new Payer();
$details = new Details();
$amount = new Amount();
$transaction = new Transaction();
$payment = new Payment();
$redirectUrls = new RedirectUrls();
// Payer
$payer->setPaymentMethod('paypal');
// Details
$details->setShipping('1.00')
->setTax('0.00')
->setSubtotal('1.00'); //feed for membership
// Amount
$amount->setCurrency('USD')
->setTotal('2.00') // Shipping + Tax + Subtotal + Everything else you need to charge
->setDetails($details);
// Transaction
$transaction->setAmount($amount)
->setDescription('Membership');
$payment->setIntent('sale')
->setPayer($payer)
->setTransactions([$transaction]);
// Redirect URLs
$redirectUrls->setReturnUrl('http://localhost:1313/PayPal/PayPall/Pay.php?approved=true')
->setCancelUrl('http://localhost:1313/PayPal/PayPall/cancelled.php?approved=false');
$payment->setRedirectUrls($redirectUrls);
try {
$payment->create($api);
// Print some stuffs for debugging
/*echo "Payment Id is " . $payment->getId();
exit;*/
// Generate and store hash
$hash = md5($payment->getId());
$_SESSION['paypal_hash'] = $hash;
// Prepare and execute transaction storage
$store= $db->prepare("
INSERT INTO transanctions_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
]);
/*$store->execute([
'user_id' => '123123123',
'payment_id' => '111111111',
'hash' => '321321'
]);*/
echo "Payment Created Completed Successfully";
} catch (PayPalConnectionException $e) {
echo $e->getData();
// Perhaps log an error
echo "Payment Just Fail";
header('Location: ../PayPall/error.php');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
foreach($payment->getLinks() as $link) {
if($link->getRel() == 'approval_url') {
$redirectUrl = $link->getHref();
}
}
header('Location: '. $redirectUrl);
?>
index.php
<?php
require 'scr/start.php';
var_dump($user);
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Temporis</title>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
</head>
<body>
<center>
<?php if ($user->member): ?>
<p>Eres un miembro!</p>
<?php else: ?>
<p>No Eres un miembro!. <a href="member/payment.php">Vuelte un miembro!</a></p>
<?php endif; ?>
</center>
</body>
</html>
Любой вопрос, комментарий или любой другой вид предложения, кроме как помочь улучшить вопрос или получить и ответить, или что-то напрямую связанное с этим, очень ценится так же, как и хороший ответ.
Если вы считаете, что мне нужно дать больше информации, просто спросите, какая информация вам нужна, и я добавлю ее в пост.
заранее спасибо