Я знаю, что это заданный вопрос ранее, но все ответы, которые я нахожу, кажется, не работают.
Вот мой код:
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.
У меня есть цифровые товары, а не физические товары.