PayPal用户标识符

时间:2013-09-24 00:17:04

标签: paypal

我正在尝试找到一些在PayPal帐户有效期内不会改变的硬标识符,

似乎REST API有自己的用户标识符(当范围具有 openid 时,可以从 openidconnect / userinfo 资源返回)

不幸的是,此ID不是Adaptive API在发出PayRequest时所期望的:

  

sender.accountId :帐户ID值(与Express Checkout API中使用的付款人ID值相同)。帐户ID值是加密的PayPal帐户ID。

这很令人困惑,我理解REST API与Adaptive API不同,并且使用电子邮件是不够的,因为我们需要将标识符长期存储在我们的数据库中,用户可以通过PayPal更改他的电子邮件地址,

谢谢,

阿萨夫。

1 个答案:

答案 0 :(得分:0)

使用预先批准的付款时,您不需要发件人ID。预批准密钥本身与批准它的发件人有关。

以下是使用预先批准密钥进行付款的示例请求和响应,该密钥在没有任何发件人ID的情况下正常运行。

请求

<?xml version="1.0" encoding="utf-8"?>
<PayRequest xmlns="http://svcs.paypal.com/types/ap">
  <requestEnvelope xmlns="">
    <detailLevel>ReturnAll</detailLevel>
    <errorLanguage>en_US</errorLanguage>
  </requestEnvelope>
  <actionType xmlns="">PAY</actionType>
  <cancelUrl xmlns="">http://paypal.angelleye.com/paypal/class/1.2/Pay_Cancel.php</cancelUrl>
  <clientDetails xmlns="">
    <applicationId xmlns="">APP-80W284485P519543T</applicationId>
    <ipAddress xmlns="">192.168.1.1</ipAddress>
  </clientDetails>
  <currencyCode xmlns="">USD</currencyCode>
  <preapprovalKey xmlns="">PA-2AY45015CC5060422</preapprovalKey>
  <receiverList xmlns="">
    <receiver xmlns="">
      <amount xmlns="">5.00</amount>
      <email xmlns="">usb_1329725429_biz@angelleye.com</email>
    </receiver>
  </receiverList>
  <sender>
    <useCredentials xmlns=""></useCredentials>
  </sender>
  <account xmlns="">
    <phone xmlns=""></phone>
  </account>
  <returnUrl xmlns="">http://paypal.angelleye.com/paypal/class/1.2/Pay_Return.php</returnUrl>
</PayRequest>

<强>响应

<?xml version='1.0' encoding='UTF-8'?>
<ns2:PayResponse xmlns:ns2="http://svcs.paypal.com/types/ap">
  <responseEnvelope>
    <timestamp>2013-09-24T13:57:52.350-07:00</timestamp>
    <ack>Success</ack>
    <correlationId>2fa4316b879b9</correlationId>
    <build>7767516</build>
  </responseEnvelope>
  <payKey>AP-5632737798659023M</payKey>
  <paymentExecStatus>COMPLETED</paymentExecStatus>
  <paymentInfoList>
    <paymentInfo>
      <transactionId>53664474R26308454</transactionId>
      <transactionStatus>COMPLETED</transactionStatus>
      <receiver>
        <amount>5.00</amount>
        <email>usb_1329725429_biz@angelleye.com</email>
        <primary>false</primary>
        <accountId>C9TAVNJFATXCS</accountId>
      </receiver>
      <pendingRefund>false</pendingRefund>
      <senderTransactionId>3CV49919EJ546411E</senderTransactionId>
      <senderTransactionStatus>COMPLETED</senderTransactionStatus>
    </paymentInfo>
  </paymentInfoList>
  <sender>
    <accountId>E7BTGVXBFSUAU</accountId>
  </sender>
</ns2:PayResponse>

您可以在上面看到,响应实际上包含了根据请求中提供的预先批准密钥知道的发件人ID。