Почему сумма счета в песочнице PayPal не обновляется? - PullRequest
0 голосов
/ 09 апреля 2019

Мой код успешно обрабатывает платежи в PayPal, а затем возвращается на страницу успеха, сумма покупки бизнес-счета не обновляется.

Я пытаюсь использовать PayPal SDK в laravel, ниже приведен мой скрипт, которым я пользуюсь, но на лицевой стороне он успешно переходит на страницу PayPal, где я вхожу, используя учетную запись покупателя, затем оплачиваю и затем PayPal возвращаюсь на страницу успеха.,Но в учетной записи продавца сумма не отображается и не вычитается из учетной записи покупателя.

public function createpayment(){
        $apiContext = new \PayPal\Rest\ApiContext(
            new \PayPal\Auth\OAuthTokenCredential(
                'Ac.................asd',     // ClientID
                'Ac.................sdf'      // ClientSecret
            )
        );
        $payer = new Payer();
        $payer->setPaymentMethod("paypal");
        $item1 = new Item();
        $item1->setName('Ground Coffee 40 oz')
            ->setCurrency('USD')
            ->setQuantity(1)
            ->setSku("123123") // Similar to `item_number` in Classic API
            ->setPrice(7.5);
        $item2 = new Item();
        $item2->setName('Granola bars')
            ->setCurrency('USD')
            ->setQuantity(5)
            ->setSku("321321") // Similar to `item_number` in Classic API
            ->setPrice(2);

        $itemList = new ItemList();
        $itemList->setItems(array($item1, $item2));

        $details = new Details();
        $details->setShipping(1.2)
            ->setTax(1.3)
            ->setSubtotal(17.50);

        $amount = new Amount();
        $amount->setCurrency("USD")
            ->setTotal(20)
            ->setDetails($details);

        $transaction = new Transaction();
        $transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription("Payment description")
            ->setInvoiceNumber(uniqid());


        /* $baseUrl = getBaseUrl(); */
        $redirectUrls = new RedirectUrls();
        $redirectUrls->setReturnUrl(route('success'))
        ->setCancelUrl(route('cancel'));


        $payment = new Payment();
        $payment->setIntent("sale")
            ->setPayer($payer)
            ->setRedirectUrls($redirectUrls)
            ->setTransactions(array($transaction));
         /* $payment->create($apiContext);
        return  redirect($payment->getApprovalLink()); */

        try {
            $payment->create($apiContext);
        } catch (Exception $ex) {
            ResultPrinter::printError("Created Payment Using PayPal. Please visit the URL to Approve.", "Payment", null, $request, $ex);
            exit(1);

        }
        $approvalUrl = $payment->getApprovalLink();

        echo $payment, $approvalUrl;
    }

    public function success(){
        $apiContext = new \PayPal\Rest\ApiContext(
            new \PayPal\Auth\OAuthTokenCredential(
                'Ac.................asd',     // ClientID
                'Ac.................sdf'      // ClientSecret     // ClientSecret
            )
        );

        return request();
    }

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

1 Ответ

0 голосов
/ 17 апреля 2019

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

https://github.com/paypal/PayPal-PHP-SDK/blob/master/sample/payments/ExecutePayment.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...