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>

Любой вопрос, комментарий или любой другой вид предложения, кроме как помочь улучшить вопрос или получить и ответить, или что-то напрямую связанное с этим, очень ценится так же, как и хороший ответ.

Если вы считаете, что мне нужно дать больше информации, просто спросите, какая информация вам нужна, и я добавлю ее в пост.

заранее спасибо

0 ответов

Другие вопросы по тегам