在PayPal Express Checkout中禁用送货地址选项

Erg*_*gec 24 php paypal paypal-sandbox

使用PayPal API并使用来自SDK和下载的名称 - 值对接口PHP源代码:简化与下载和SDK的集成.

我的问题类似于" 删除(或预先填写)PayPal Express Checkout的地址详细信息 ",但我不想要运费或地址或与运输相关的任何内容.

我保留了我的系统上的所有运输详细信息(即使有时甚至没有运费,也没有收费)我只是希望用户通过PayPal付款而不收取运费和运费.

如何禁用运送部分结账?

jbx*_*jbx 30

如果您使用的是较新的API,也可以传递NOSHIPPING = 1(不是no_shipping)

有关SetExpressCheckout所有可能参数的更多详细信息,请访问:

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

或者在新的REST API中查找付款体验


Jam*_*ore 14

嘿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.


Dav*_*ent 11

对于其他正在寻找此内容的人,因为 PayPal 的文档非常棒(咳嗽、咳嗽)。

不需要网络体验资料!

将 REST API V2 与 Javascript/JQuery 结合使用,并为订单关闭“Ship To”,这是正确的代码示例:

    createOrder: function(data, actions) {
        $('#paypalmsg').html('<b>' + 'WAITING ON AUTHORIZATION TO RETURN...' + '</b>');
        $('#chkoutmsg').hide()
        return actions.order.create({
            purchase_units: [{
                description: 'GnG Order',
                amount: {
                    value: cartTotal
                }
            }],
            application_context: {
              shipping_preference: 'NO_SHIPPING'
            }

        });
    },
Run Code Online (Sandbox Code Playgroud)

  • 非常感谢你!拯救了我的一天!你有机会告诉我你从哪里得到这个吗? (2认同)
  • 我写的,从他们可怕的文档中闪闪发光 (2认同)

Akm*_*mal 5

当前的正确答案已被废除。要解决新API中的问题,我们应该创建带有所需参数的Payment网络体验配置文件资源,并将其附加到request Payment中

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.
}
Run Code Online (Sandbox Code Playgroud)

注意:您可以通过链接找到以上所有使用的类:https : //github.com/paypal/PayPal-PHP-SDK/tree/master/lib/PayPal/Api


Gen*_* Bo 5

要从当前(2019 年)Web 客户端 .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');
Run Code Online (Sandbox Code Playgroud)

感谢这里的示例代码:

以下是列出字段枚举的位置: