Отключить вариант доставки адреса в Caypal Express Checkout

StackOverflow https://stackoverflow.com/questions/4283251

  •  28-09-2019
  •  | 
  •  

Вопрос

Работа с API PayPal и использование интерфейса PHP-кодах PHP-исходных кодах SDKS и загрузки: Упростите интеграции с загрузками и SDK.

Мой вопрос похож наУдаление (или префиляция) Подробности адреса для Caypal Express Checkout«Но я не хочу стоимость доставки / адреса или что-нибудь, связанное с доставкой вообще.

Я держу все детали доставки в моей системе (даже иногда доставки даже не применяются, и для него нет вряда), и я просто хочу, чтобы пользователь заплатил через PayPal без доставки и стоимости доставки.

Как я могу отключить доставку часть заказа?

Это было полезно?

Решение

Если вы используете новее API, вы также можете пройти Noshipping = 1 (не NO_shipping)

Дополнительные подробности обо всех возможных параметрах к SetexpressCheckout здесь:

https://developer.paypal.com/webapps/developer/docs/classic/api/merchant/setexpresscheckout_api_operation_nvp/

Или поиск Опыт оплаты В новом отдыхе API

Другие советы

Эй, ergec, просто пропустите no_shipping параметр со значением 1.

От PayPal's документация:

No_shipping Не подскажите плательщики для адреса доставки. Допустимые значения: 0 - Подскажите адрес, но не требуют одного 1 - не подскажите адрес 2 - Подскажите адрес, и требуют одного по умолчанию 0.

Текущий правый ответ в браке. Отказ Чтобы исправить проблему в новом API, мы должны создать Оплата веб-сайта с необходимыми параметрами и прикрепите его к запросу Оплата .

Пример в PHP:

/** Note: Define some variables yourself. */

$inputFields = new InputFields();
$inputFields->setAllowNote(true)
    ->setNoShipping(1) // Important step
    ->setAddressOverride(0);

$webProfile = new WebProfile();
$webProfile->setName(uniqid())
    ->setInputFields($inputFields)
    ->setTemporary(true);

$createProfile = $webProfile->create($apiContext);

$payment = new Payment();

$payment->setPayer($payer);
$payment->setIntent($intent);
$payment->setRedirectUrls($redirectUrls)
$payment->setTransactions(array($transaction));
$payment->setExperienceProfileId($createProfile->getId()); // Important step.

$payment->create($apiContext);

if ($payment->getState() === "created") {
    $approvalLink = $payment->getApprovalLink()

    header("Location: $approvalLink"); // Redirects user to PayPal page.
}

Примечание: Вы можете найти все вышеперечисленные занятия по ссылке: https://github.com/paypal/paypal-php-sdk/tree/master/lib/paypal/api.

Создайте веб-профиль на основе примера, найденного в API: CreateWebProfile.php.

$createProfileResponse = require  __DIR__ . '/CreateWebProfile.php';
$payment = new Payment(); 
$payment->setExperienceProfileId($createProfileResponse->getId());

Путь файла: paypal/rest-api-sdk-php/sample/payment-experience/CreateWebProfile.php

@Ergec: Я попробовал это:

$nvpstr = "&ADDRESSOVERRIDE=1".$shiptoAddress."&L_NAME0=".$L_NAME0."&L_NAME1=".$L_NAME1."&L_AMT0=".$L_AMT0."&L_AMT1=".$L_AMT1."&L_QTY0=".$L_QTY0."&L_QTY1=".$L_QTY1."&MAXAMT=".(string)$maxamt."&ITEMAMT=".(string)$itemamt."&AMT=".$itemamt."&ReturnUrl=".$returnURL."&CANCELURL=".$cancelURL."&CURRENCYCODE=".$currencyCodeType;

Оно работает. Здесь мы также можем использовать адрес доставки, даже если мы не заряжаем никакой суммы.

Чтобы решить для этого из текущего (2019) веб-клиента .js, добавьте application_context Блок к телу запроса.

Ниже приведен пример для createSubscription() вызов; И я думаю, что это будет работать с createOrder() также

paypal.Buttons({
          createSubscription: function (data, actions) {

              return actions.subscription.create({

                  'plan_id'            : 'P-123',
                  'application_context': {
                      'shipping_preference': 'NO_SHIPPING'
                  }
              });
          },

          onApprove: function (data, actions) {

              // ...
          }
      })
      .render('#paypal-button-container');

Благодаря примеру кода здесь:

Вот где перечислены поля поля:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top