PHP PayPal SDK api - не указывать адрес доставки - PullRequest
0 голосов
/ 07 ноября 2019

Я знаю, что это заданный вопрос ранее, но все ответы, которые я нахожу, кажется, не работают.

Вот мой код:

public function processPayment($order)
{
    $product = Product::find($order->productId);
    Log::info("PayPal: Loggin info about: " . $product->productName);
    $payer = new Payer();
    $payer->setPaymentMethod('paypal');
    $item_1 = new Item();
    $item_1->setName($product->productName) /** item name **/
        ->setDescription(" This is OUR TEST DEscription.")
        ->setCurrency($product->currency)
        ->setQuantity(1)
        ->setPrice($product->price)
        ->setCategory("DIGITAL"); /** unit price **/
    $item_list = new ItemList();
    $item_list->setItems(array($item_1));
    $amount = new Amount();
    $amount->setCurrency($product->currency)
        ->setTotal($product->price);
    $transaction = new Transaction();
    $transaction->setAmount($amount)
        ->setItemList($item_list)
        ->setDescription('Purchasing of: ' . $product->productDescription);
    $redirect_urls = new RedirectUrls();
    $redirect_urls->setReturnUrl(URL::to('status')) /** Specify return URL **/
        ->setCancelUrl(URL::to('status'));
    $payment = new Payment();
    $payment->setIntent('Sale')
        ->setPayer($payer)
        ->setRedirectUrls($redirect_urls)
        ->setTransactions(array($transaction));

    $inputFields = new InputFields();
    $inputFields->setNoShipping(1)
    ->setAddressOverride(0);    
    /** dd($payment->create($this->_api_context));exit; **/
    try {
        $webProfile = new WebProfile();
        $webProfile->setName("My Test Store")
        ->setInputFields($inputFields)
        ->setTemporary(true);
        $webProfileId = $webProfile->create($this->_api_context)->getId();
        $payment->create($this->_api_context);
        $payment->setExperienceProfileId($webProfileId);
    } catch (\PayPal\Exception\PPConnectionException $ex) {
        if (\Config::get('app.debug')) {
            \Session::put('error', 'Connection timeout');
            return Redirect::to('/');
        } else {
            \Session::put('error', 'Some error occur, sorry for inconvenient');
            return Redirect::to('/');
        }
    }
    foreach ($payment->getLinks() as $link) {
        if ($link->getRel() == 'approval_url') {
            $redirect_url = $link->getHref();
            break;
        }
    }
    /** add payment ID to session **/
    Session::put('paypal_payment_id', $payment->getId());
    $this->setOrderPaymentId($order, $payment->getId());
    if (isset($redirect_url)) {
        /** redirect to paypal **/
        return Redirect::away($redirect_url);
    }
    \Session::put('error', 'Unknown error occurred');
    return Redirect::to('/');

}

С помощью этого кода я не могу удалить требование доставки на странице оформления заказа в PayPal + Я не могу изменить название магазина.

Это песочница. Можно ли как-нибудь изменить название магазина и удалить требование адреса доставки на странице оформления платежей PayPal.

У меня есть цифровые товары, а не физические товары.

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