我已经创建了一个PayPal沙盒交易,如您所见,然后使用下面的代码。它工作正常。但是现在我想在Paypal网站上禁用送货地址对话框。
我找到了这个:

$inputfields = new \PayPal\Api\InputFields();
$inputfields->getNoShipping(1);


但我知道它不起作用。还缺少什么?

$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential( PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET ));

$amount = new Amount();
$amount->setCurrency('EUR');
$amount->setTotal($price);
$amount->setDetails($details);

$transaction = new Transaction();
$transaction->setAmount($amount)
    ->setDescription( ... )
    ->setNotifyUrl(  ... );

$redirectUrls = new RedirectUrls();
$redirectUrls->setReturnUrl( ... );
    ->setCancelUrl( ... );

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

$payment = new Payment();
$payment->setIntent("sale")
    ->setPayer($payer)
    ->setRedirectUrls($redirectUrls)
    ->setTransactions(array($transaction));

try {
    $payment->create($apiContext);
} catch (\PayPal\Exception\PayPalConnectionException $e) { }

最佳答案

这是一个老问题,但我认为它仍然有意义:

您必须将InputFields包装在配置文件中(例如WebProfile)。

$inputfields = new \PayPal\Api\InputFields();
$inputfields
   ->getNoShipping(1)
   ->setAddressOverride(0);;

$webProfile = new \PayPal\Api\WebProfile();
$webProfile
   ->setName('testname' . uniqid())
   ->setInputFields($inputFields)
   ->setTemporary(true);


然后创建配置文件,并将其添加到“付款”中。

$webProfileId = $webProfile->create($apiContext)->getId();

$payment = new Payment();
$payment->setExperienceProfileId($webProfileId);

关于php - 如何使用PHP禁用PayPal运送选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36131945/

10-10 15:18
查看更多