PayPal REST API未返回payment_info

nat*_*aty 6 paypal

我正在使用REST API来授权PayPal交易,当它返回确认并执行付款时,我想从他们的PayPal账户中检索并显示付款人信息,如姓名,地址,电话等,以获取结账订单确认页面.(为了避免他们必须输入所有的账单/送货地址信息,因为这应该可以从PayPal获得.)

目前返回仅显示付款人的此信息:

PayPal\Api\Payment Object
(
    [_propMap:PayPal\Common\PPModel:private] => Array
        (
            [id] => PAY-2EC51985XH550123JKHG3C4Y
            [create_time] => 2013-06-28T15:53:23Z
            [update_time] => 2013-06-28T15:53:23Z
            [state] => created
            [intent] => sale
            [payer] => PayPal\Api\Payer Object
                (
                    [_propMap:PayPal\Common\PPModel:private] => Array
                        (
                            [payment_method] => paypal
                        )

                )

            [transactions] => Array
            ...
Run Code Online (Sandbox Code Playgroud)

文件说明:

payer_info对象

  • pay_althod是paypal时,此对象由PayPal预先填写.

(参见https://developer.paypal.com/webapps/developer/docs/api/#payerinfo-object)

即使付款完成后,我仍然没有从PayPal收到payer_info对象.我想知道PayPal是否只是在将用户发送给PayPal之前返回我预先填写的信息?例如:

$payer = new Payer();
$payer->setPayment_method('paypal');
Run Code Online (Sandbox Code Playgroud)

有没有办法Payment::get($pay_id)->getPayer()->getPayerInfo()->getShipping_address()使用REST API 检索用户的名称/地址/电话/等(我期望从中获得)?

或者我是否必须让用户重复他们的工作并在我的结帐页面上输入地址信息?我当然希望不会,因为这是使用PayPal作为付款方式的一大优势.

dig*_*rld 5

我想我会发一个答案,以防其他人有这个问题.

似乎REST API在大多数情况下无法返回发货信息.特别是在使用GET /payments/payment端点时.但是我之前看到它从POST /payments/payment/<PAYMENT_ID>/execute端点返回运输信息.

无论如何,按照上面的评论,看起来OP似乎放弃了REST API并返回到Express Checkout.如果您想预先获得运输数据,这是公平的.

但是,如果您将PayPal IPN与REST API结合使用,它将在回调中提供运费和结算信息.所以你可以在那时收集信息.

我看到这样做的唯一问题是您无法确认用户的地址是否正确.但是,PayPal会在用户完成付款时向用户显示此信息,并允许他们在必要时进行更改.所以我认为假设数据准确是安全的.