omn​​ipay paypal表示不归还地址

Stu*_*lue 5 codeigniter paypal ci-merchant omnipay

我在这里使用omnipay设置:https://github.com/adrianmacneil/omnipay来处理paypal快速结账.

该过程工作正常,用户被重定向到paypal - >他们登录并选择支付 - >他们返回我的网站,此时我捕获付款.

我遇到的问题是我需要将他们输入Paypal的地址作为他们的账单/送货地址.

要将用户发送到paypal,我有以下内容:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('XX-USERNAME_XX');
$gateway->setPassword('XX_PASSWORDXX');
$gateway->setSignature('XX_SIG_XX');
$gateway->setTestMode(true);

$response = $gateway->purchase(
    array(
        'cancelUrl'=>'http://www.XXX.co.uk/',
        'returnUrl'=>'http://www.XXX.co.uk/paypalexpress_confirm',
        'amount' =>  $totalamount,
        'currency' => 'GBP'
    )
)->send();

$response->redirect(); 
Run Code Online (Sandbox Code Playgroud)

当用户返回时,我有以下内容:

$gateway = GatewayFactory::create('PayPal_Express');
$gateway->setUsername('XX-USERNAME_XX');
$gateway->setPassword('XX_PASSWORDXX');
$gateway->setSignature('XX_SIG_XX');
$gateway->setTestMode(true);

$response = $gateway->completePurchase(
    array(
        'cancelUrl'=>'http://www.XXX.co.uk/',
        'returnUrl'=>'http://www.XXX.co.uk/paypalexpress_confirm',
        'amount' =>  $totalamount,
        'currency' => 'GBP'
    )
    )->send();

    echo $responsemsg=$response->getMessage(); 

    echo '<br><br><br>';
    $data = $response->getData(); 
    print_r($data);
Run Code Online (Sandbox Code Playgroud)

响应消息或原始数据中的任何内容都不包含客户地址.

有没有人得到这个工作,因为我正在努力,这是完成交易的最后一步.

Stu*_*lue 3

对于那些试图完成这项工作的人来说,就像阿德里安所说的那样。

您首先进行正常的omnipay paypal付款,然后:

  1. 获取您获得的令牌
  2. 使用 getexpresscheckoutdetails 方法对 paypal 进行第二次调用
  3. 这将返回您需要的所有信息

API信息在这里:https://cms.paypal.com/uk/cgi-bin/ ?cmd=_render-content&content_ID=developer/e_howto_api_nvp_r_GetExpressCheckoutDetails

paypal 提供的 php 脚本可以为您完成这一切:

https://cms.paypal.com/cms_content/ES/es_ES/files/developer/nvp_ECGetExpressCheckout_php.txt