c# - PayPal Adaptive Payment Api 预填充用户数据

标签 c# asp.net paypal paypal-adaptive-payments

我正在制作一个我们将要举办事件的网站,并希望用户“用户 A”能够开始事件 - 输入他们的 Paypal 帐户信息并设置价格。然后其他用户可以注册他们的事件并直接向用户 A 付款,而我们无需处理他们的信用卡。我们希望没有 Paypal 账户的用户能够使用信用卡支付。

看起来 Paypal 的 Adaptive Payment 是我们用来完成此任务的最佳 API。我让它在沙箱环境中工作。我的问题是这样的——用户点击注册用户 A 的事件,然后他们输入他们的所有信息(姓名、地址、公司等),我们需要将这些信息保存在我们的数据库中,所以这需要先完成。然后他们将点击一个显示“使用 Paypal 付款”的按钮。这会创建一个 paykey 并将用户重定向到 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. 创建一个preapproval key(见api文档,不需要知道用户paypal login),作为returnUrl,指定一个带有本地user_id的url
  3. 使用上一步返回的 url 打开一个 paypal 弹出客户端。用户将需要使用他的 paypal 帐户登录,然后接受您预先批准的特征(时间限制、金额限制)
  4. Paypal会重定向到step2的returnUrl,当你说“This window will close automaticaly”用js关闭页面时,它可以是一个页面
  5. 您现在可以使用预批准 key 代表用户进行付款

当用户第一次结帐后:

  1. 要求确认“$XX 将通过您链接的 Paypal 支付 账户”
  2. 使用预批准 key 付款,完成!

希望对您有所帮助!

关于c# - PayPal Adaptive Payment Api 预填充用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11906599/

相关文章:

api - Paypal REST API 仅在实时模式下返回 404 Not Found

c# - 基本类型枚举 - 它存在吗

c# - 来自 MYSQL Membership Provider 的自定义成员资格提供程序

asp.net - 如何以 HTML 形式编辑模型属性

php - Paypal 拒绝网站教程中示例代码的凭据

php - Paypal IPN 验证

c# - 如果可能的话,是否应该在软件组件内部避免使用线程?

c# - 如何避免在 TreeView 中闪烁

c# - 如何将 HTML 元素的值分配为 ASP.NET 中 MVC Modal 类中定义的变量的值?

c# - 电子邮件正文中未解释 Html IFrame 标记