通过OmniPay PHP进行PayPal转账

通过OmniPay PHP进行PayPal转账,php,paypal,omnipay,Php,Paypal,Omnipay,我想在两个PayPal帐户之间转账,而不必像在Express checkout中那样强制用户输入信息 $gateway = Omnipay::create('PayPal_Express'); $gateway->setUsername('ABCD'); $gateway->setPassword('ABCD'); $gateway->setSignature('ABCD'); $gateway->setTestMode(true); $params

我想在两个PayPal帐户之间转账,而不必像在Express checkout中那样强制用户输入信息

$gateway = Omnipay::create('PayPal_Express');
  $gateway->setUsername('ABCD');
  $gateway->setPassword('ABCD');
  $gateway->setSignature('ABCD');
  $gateway->setTestMode(true);

  $params = array(
      'amount' => '400.00',
      'currency' => 'USD',
      'description' => 'ABCD funds transfer',
      'returnUrl' => 'http://abcd.com/jj/payment/paypal_success/'.$session['id'],
      'cancelUrl' => 'http://abcd.com/jj/payment/index'
   );
  $response = $gateway->purchase($params);
  $response = $response->send(); 
  $response->redirect();
有没有办法通过OmniPay做到这一点

我正在使用此代码进行快速结帐

$gateway = Omnipay::create('PayPal_Express');
  $gateway->setUsername('ABCD');
  $gateway->setPassword('ABCD');
  $gateway->setSignature('ABCD');
  $gateway->setTestMode(true);

  $params = array(
      'amount' => '400.00',
      'currency' => 'USD',
      'description' => 'ABCD funds transfer',
      'returnUrl' => 'http://abcd.com/jj/payment/paypal_success/'.$session['id'],
      'cancelUrl' => 'http://abcd.com/jj/payment/index'
   );
  $response = $gateway->purchase($params);
  $response = $response->send(); 
  $response->redirect();

您可以通过以下方式完成此操作:

  • 发件人帐户是您的帐户。这将被视为隐性付款;或
  • 您有权通过授予的API权限代表发件人行事

  • 否则,发送方必须对交易进行身份验证。

    以上是贝宝方面的正确答案。从Omnipay的角度来看,Omnipay PayPal目前还不支持自适应支付(Adaptive Payment)。我计划在不久的将来实现它,但是我将在Omnipay\PayPal\u Rest网关而不是PayPal\u Express网关中实现它。如果您希望在Omnipay中出现该代码时使用它,那么我建议您将应用程序从PayPal_Express迁移到PayPal_Rest。我很想听听Robert对Express vs REST gateway的看法。