PayPal SDK: адрес доставки и категория - PullRequest
1 голос
/ 23 марта 2020

Я пытаюсь удалить адрес доставки из кассы, но он не работает. Кроме того, я не уверен, почему покупка идет с Категория: Автозапчасти. Следующий код работает отдельно от вещей, упомянутых выше.

        $payer = new Payer();
        $payer->setPaymentMethod('paypal');

        $item_1 = new Item();
        $item_1->setName('Example Item')/** item name **/
        ->setCurrency('USD') //->setCategory('DIGITAL') seems not to be working
            ->setQuantity($selection)
            ->setPrice($price);

        /** unit price **/
        $item_list = new ItemList();
        $item_list->setItems(array($item_1));
        $amount = new Amount();
        $amount->setCurrency('USD')
            ->setTotal($selection * $price);

        $transaction = new Transaction();
        $transaction->setAmount($amount)
            ->setItemList($item_list)
            ->setDescription($decription);

        $redirect_urls = new RedirectUrls();
        $redirect_urls->setReturnUrl(URL::route('ppstatus'))/** Specify return URL **/
        ->setCancelUrl(URL::route('ppstatus'));

        $payment = new Payment();
        $payment->setIntent('sale')
            ->setPayer($payer)
            ->setRedirectUrls($redirect_urls)
            ->setTransactions(array($transaction));

        $inputFields = new InputFields();
        $inputFields->setNoShipping(1);

        $webProfile = new WebProfile();
        $webProfile->setName("example");
        $webProfile->setInputFields($inputFields);


        try {
            $payment->create($this->_api_context);
        } catch (\PayPal\Exception\PPConnectionException $ex) {
            if (\Config::get('app.debug')) {
                return json_encode(['status' => false, 'message' => 'Connection timeout']);
            } else {
                return json_encode(['status' => false, 'message' => 'Some error occur, sorry for inconvenient']);
            }
        }
        foreach ($payment->getLinks() as $link) {
            if ($link->getRel() == 'approval_url') {
                $redirect_url = $link->getHref();
                break;
            }
        }

        if (isset($redirect_url)) {
            /** redirect to paypal **/
            return json_encode(['status' => true, 'message' => $redirect_url]);
        }

        \Session::forget('donatorName');
        return json_encode(['status' => false, 'message' => 'Unknown error occurred']);

Любая помощь будет оценена SDK: https://github.com/paypal/PayPal-PHP-SDK

...