PayPal自适应支付 API 预填充用户数据



我正在制作一个网站,我们将在其中举办活动,并希望用户"用户A"能够开始活动 - 输入他们的PayPal帐户信息并设置价格。 然后,其他用户可以注册他们的活动并直接向用户A付款,而我们不必处理他们的信用卡。 我们希望没有PayPal帐户的用户能够使用信用卡付款。

看起来PayPal的自适应支付是我们用来实现这一目标的最佳 API。 我让它在沙盒环境中工作。 我的问题是这个 - 用户点击注册用户 A 的活动,然后他们输入他们的所有信息(姓名、地址、公司等)。 我们需要将此信息保存在我们的数据库中,因此需要首先完成此操作。 然后,他们将单击一个显示"PayPal付款"的按钮。 这将创建一个支付密钥并将用户重定向到PayPal登录页面,其中用户有 2 个选项(a. 登录PayPal或 b. 再次输入个人信息和信用卡信息)

我想知道如何完成在PayPal页面中已经填写所有字段,这样用户就不必再次输入所有信息。 如果帐单邮寄地址恰好不同,他们将能够删除文本框中的数据。 但是我见过的所有网站,如果它们相同,就不会让用户输入此信息两次。 现在我知道这是可能的,因为我已经看到其他网站这样做了。 我已经研究了SetPaymentOptions API,但还不清楚它是如何工作的,我需要传递用户信息,即使他们不知道PayPal。

我尝试按照PayPal这样的教程中的建议添加值

<INPUT TYPE="hidden" NAME="first_name" VALUE="John">
<INPUT TYPE="hidden" NAME="last_name" VALUE="Doe">
<INPUT TYPE="hidden" NAME="address1" VALUE="9 Elm Street">

但这不起作用,这是请求中来自 Fiddler 的原始数据:

POST https://svcs.sandbox.paypal.com/AdaptivePayments/Pay HTTP/1.1
Content-Type: text/xml;charset=utf-8
X-PAYPAL-SECURITY-USERID: scotts_XXXXXXXXX_biz_api1.live.com
X-PAYPAL-SECURITY-PASSWORD: 1344XXXXX
X-PAYPAL-SECURITY-SIGNATURE: AOLbPDojAEUdeQJ3wXagJXkxYeJDARg4IXXXXXXXXXXXXXXXXXXX
X-PAYPAL-SERVICE-VERSION: 1.1.0
X-PAYPAL-APPLICATION-ID: APP-80W2844XXXXXXXXX
X-PAYPAL-REQUEST-DATA-FORMAT: XML
X-PAYPAL-RESPONSE-DATA-FORMAT: XML
Host: svcs.sandbox.paypal.com
Content-Length: 810
Expect: 100-continue
Connection: Keep-Alive

我认为对您来说,问题实际上不在于在弹出窗口中登录PayPal,而在于能够使用信用卡付款的PayPal注册过程。自适应支付 API 中有一个 api 调用,允许您代表用户处理注册。

您可以使用自己的设计直接在页面上预过滤PayPal信息。提交后,您使用自适应支付 API 创建一个PayPal帐户,此过程的最后一步需要您打开一个PayPal弹出窗口,该弹出窗口将要求用户通过添加密码和信用卡信息来完成注册。

在此之后,您将找到使用简单PayPal登录的相同付款行为。


请注意,通过您可以添加预批准PayPal进一步集成您的所有网站,然后用户将只看到一次PayPal网站:当他接受预批准时(两个步骤在灯光PayPal弹出窗口:登录>接受)。

用户首次结账时:

  1. 在创建帐户(使用我上面解释的方式)或PayPal付款之间进行选择
  2. 创建一个预批准密钥(请参阅 API 上的文档,登录时不需要知道用户PayPal),作为 returnUrl,指定一个带有本地user_id的 url
  3. 使用上一步返回的 url 打开PayPal弹出客户端。用户需要使用他的PayPal帐户登录,然后接受您的预批准特征(时间限制,金钱限制)
  4. PayPal将重定向到 step2 的 returnUrl,当您只需使用 js 说"此窗口将自动关闭"以关闭页面时,它可以是一个页面
  5. 现在,您可以使用预批准密钥代表用户付款

当用户第一次结账后

  1. 要求确认"$XX将在您链接的PayPal帐户"
  2. 使用预批准密钥付款,就完成了!

希望它能有所帮助!

来自PayPal的官方回应:

" 自适应支付在文档中没有任何功能可以做到这一点。对于由此可能造成的不便,我深表歉意。

我将保留这个问题,以防有人有更好的途径让我完成我在问题中解释的内容。

编辑:

万一其他人遇到这种情况,这实际上 100% 是不可能的 - 我最终使用了快速支付 API,使用它很容易传递用户参数。

不要使用自适应支付 API

自适应付款已于 2017 年 12 月 1 日停止,PayPal Marketplace 等同于自适应付款。

可以在PayPal开发人员门户上了解有关市场产品的更多信息:https://developer.paypal.com/docs/marketplaces/pp4mp/?mark=marketplaces

你好,我认为以下链接会对你有所帮助

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_APIntro

最新更新