Отключить опцию адреса доставки в PayPal Express Checkout
работа с API PayPal и использование интерфейса пары имя-значение исходные коды PHP из SDKs и загрузки: упрощение интеграции с загрузками и SDKs.
мой вопрос похож на "удаление (или предварительное заполнение) адресных данных для PayPal Express Checkout " но я не хочу цену/адрес доставки или что-нибудь связанное о доставке на всех.
Я сохраняю все детали доставки в моей системе (даже иногда доставка даже не применитесь и нет никакой обязанности для его) и я как раз хочу потребитель оплатить через Пайпал без адреса доставки и цены доставки.
Как я могу отключить доставку часть заказа?
5 ответов
Если вы используете новый API, вы также можете передать NOSHIPPING=1 (не no_shipping)
дополнительные сведения о всех возможных параметрах SetExpressCheckout здесь:
или поиск оплата в новом REST API
- Эй Ergec, просто пройти вдоль no_shipping
параметр со значением 1
.
из PayPal документация:
no_shipping Do not prompt payers for shipping address. Allowable values: 0 – prompt for an address, but do not require one 1 – do not prompt for an address 2 – prompt for an address, and require one The default is 0.
создайте веб-профиль на основе примера, найденного в 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
текущий правильный ответ depracated. Чтобы устранить проблему в новом 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
@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;
это работает. Здесь мы также можем использовать адрес доставки, даже если мы не взимаем никакой суммы.