2012-08-10 111 views
5

我正在制作一个网站,我们要举办活动并希望用户“用户A”能够开始活动 - 输入他们的PayPal帐户信息并设置价格。然后其他用户可以注册他们的活动并直接向用户A付款,而我们不必处理他们的信用卡。我们希望没有PayPal帐户的用户能够使用信用卡付款。PayPal自适应支付API预填充用户数据

它看起来像贝宝的自适应支付是我们用来完成这一点的最佳API。我有它在沙箱环境中工作。我的问题是这样的 - 用户点击注册USER A的事件,然后他们输入他们的所有信息(姓名,地址,公司等),我们需要将这些信息保存在我们的数据库中,因此这需要先完成。然后他们将点击一个按钮,说“用PayPal支付”。这将创建一个paykey并将用户重定向到用户有2个选项的PayPal登录页面(a。登录paypal或b。再次输入个人信息和信用卡信息)

我想知道如何完成拥有所有这些字段已经填写在Paypal页面中,所以用户不必再次输入他们的所有信息。如果帐单地址恰好不同,他们将能够删除文本框中的数据。但是我见过的所有网站都没有让用户输入这些信息两次,如果他们是相同的。现在我知道这是可能的,因为我看到其他网站这样做。我已经查看了SetPaymentOptions API,但是它的工作原理并不十分清楚,我需要传递用户信息,即使它们不为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"> 

,但没有工作,这里是原始数据从提琴手从请求:

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 
+0

我一直在研究这个问题,但可能有一个想法,但我想知道你采取了哪种方法,所以我可以正确地构造一个(可能的)答案。你有没有这样做,这里提到http://stackoverflow.com/questions/2849314/paypal-adaptive-payment-api-call-with-c-sharp-net-preferably-with-webservices或者你使用过这样的库吗?因为这http://xadaptivepayments.codeplex.com/或完全不同的东西?在向PayPal和任何支持方法提出请求的地方发布代码的任何机会? – bUKaneer 2012-08-14 22:25:13

+0

我在你有一个链接的问题采取的方法,codeplex库不会成为一个选项,因为没有他们的dll文件的来源,并使用不是我们写的DLL,而且不包含来源不会允许我们保持pci兼容,我会发布样品请求从提琴手 – 2012-08-14 23:13:54

+0

更新的问题 – 2012-08-14 23:23:08

回答

0

来自PayPal的官方回复:

“Adaptive Payments在这些文档中没有任何功能。我对此可能带来的不便深表歉意“

我将离开这个问题打开但万一有人有更好的路线我去完成我的问题已经解释

编辑:。

Incase别人遇到这个,它是100%不可能的 - 我最终使用快速支付API,使用它很容易传递用户参数。

1

我认为你的问题不是真的在弹出式窗口中登录paypal,但Paypal注册过程可以用信用卡支付这里是适应性支付API中的api调用,它允许您代表用户处理注册。

您可以使用自己的设计直接在页面上预填paypal信息。在提交时,您使用自适应付款api创建了一个paypal账户,并且此流程的最后一步将需要您打开一个paypal弹出窗口,该窗口会要求用户通过添加密码和信用卡信息来完成注册。

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


请注意,以更通过PayPal整合所有的网站,你可以添加批准前,那么用户将只能看到PayPal网站一次:当他将接受事先批准(以光宝弹出两个步骤:登录>接受)。

当用户结帐第一次:

  1. 选择之间(用我上面所解释的方式)创建一个帐户或使用PayPal
  2. 支付创建预准键(上看到的文档api,你不需要知道用户的paypal登录),作为returnUrl,用本地user_id指定一个url
  3. 使用上一步返回的url打开一个贝宝弹出客户端。用户需要用他的PayPal帐户登录,然后接受您的预先批准的特征(限制时间,限制金钱)
  4. 贝宝将重定向到step2的returnUrl,它可以是一个页面,当你只是说“This窗口机器会自动关闭”用JS关闭页面
  5. 您现在可以使用预准键,令用户

的代付款时在第一时间之后的用户结帐:

  1. 请求确认“$ XX将在您的关联PayPal上执行 帐户”
  2. 使用preapproval密钥付款,并且完成!

希望它能帮上忙!

相关问题