Отправить пользователя на PayPal Guest Checkout

Я хотел бы использовать PayPal, чтобы разрешить своим клиентам осуществлять платежи с помощью кредитной или дебетовой карты. Я уже разрешаю платежи с помощью PayPal. Я знаю, что под кнопкой входа в систему PayPal находится кнопка с надписью "Оплатить с помощью кредитной или дебетовой карты", но я хотел бы отправить пользователя прямо из скрипта в PayPal Guest Checkout.

Я использую PayPal SDK и это мой код:

if($Payment_Type == 0)
{

if(!isset($Payment_Type))
{
    die();
}

$product = 'Reservation';
$price = $Total;
$shipping = 0.00;

$total = $price + $shipping;

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

$item = new Item();
$item->setName($product)
    ->setCurrency('USD')
    ->setQuantity(1)
    ->setPrice($price);

$itemList = new ItemList();
$itemList->setItems([$item]);

$details = new Details();
$details->setShipping($shipping)
    ->setSubtotal($price);

$amount = new Amount();
$amount->setCurrency('USD')
    ->setTotal($total)
    ->setDetails($details);

$transaction = new Transaction();
$transaction->setAmount($amount)
            ->setItemList($itemList)
            ->setDescription('Service My Transfer In Cabo')
            ->setInvoiceNumber(uniqid());

$redirectUrls = new RedirectUrls();     
$redirectUrls->setReturnUrl(SITE_URL . '/pay.php?success=true)
    ->setCancelUrl(SITE_URL . '/pay.php?success=false);

$payment = new Payment();   
$payment->setIntent('sale')
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions([$transaction]);

try {   $payment->create($paypal); }   
catch(Exception $e){ die($e); }

$approvalUrl = $payment->getApprovalLink();
header("Location: {$approvalUrl}");
}
elseif($Payment_Type == 2)
{ 

Мне нужно это место

Вместо этого

1 ответ

Решение

К сожалению, проверка гостей еще не поддерживается в REST API. Вам нужно будет использовать Classic API Express Checkout, если вы хотите принудительно оформить выезд.

Вы можете использовать нашу библиотеку классов PayPal PHP, чтобы быстро и легко настроить классические вызовы. Тогда вам просто нужно настроить следующие параметры в вашем запросе SetExpressCheckout:

  • SOLUTIONTYPE = Sole
  • LandingPage = Billing
  • USERSELECTEDFUNDINGSOURCE = CreditCard

Пытаться:

$flowConfig = new \PayPal\Api\FlowConfig();
$flowConfig->setLandingPageType("Billing");

Установите этот flowConfig в webProfile, и делать:

$webProfile->create($this->apiContext);

добавьте ExperienceProfileId к запросу на создание платежа, как показано ниже:

$payment->setIntent("sale")
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions(array($transaction));
    ->setExperienceProfileId(**********)

См. /questions/2536837/ispolzovanie-obektov-v-paypal-php-rest-api-sdk/2536849#2536849

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