ios - iOS 应用程序 + 服务器集成中的 Paypal 链式支付(或自适应)

标签 ios mobile sdk paypal-adaptive-payments

我想在市场 iphone 应用程序中实现 Paypal 链式支付(不是自适应支付方式之一),并且我希望我的服务器能够跟踪所有支付步骤以避免在同一产品上同时进行多次购买(是实体产品,不能购买两次)。

我从 Paypal 阅读了有关 adaptive payment flow 的文档, 这个关于 mobile integration还有这个关于IPN server side实现。

现在实现这一目标的唯一方法似乎是执行以下操作:

  1. 当用户点击支付按钮时,客户端调用我们的服务器为该产品创建“待处理”交易。
  2. 客户端调用 native paypal sdk 向用户展示支付 View 以及我们服务器返回的所有信息。
  3. paypal 调用我们的服务器以通知已完成的付款,服务器在此完成之前创建的待处理交易。
  4. paypal 调用客户通知付款已完成,此处显示“谢谢”屏幕。

出于以下原因,我不会做这种事情:

  • 我必须在产品上加一个“锁”以避免重复购买:我可以放这个锁的唯一位置是在调用 Paypal UI 之前,然后解锁它以防用户取消操作。如果用户长时间停留在 Paypal 确认上怎么办?我可以在服务器上设置一个超时时间(例如 1 小时),但这不会避免用户在那段时间之后完成购买!
  • 我必须从客户那里设置付款详情(例如金额和收款人电子邮件)。 正如我所写,我可以使用服务器提供的数据,但这会导致我遇到一些安全性和复杂性问题。
  • 使用 native sdk,用户可以从他们现有的送货地址之一中进行选择,但不能创建或编辑新的送货地址。我必须在 paypal 之外询问收货地址并将这些数据传递到我自己的服务器。

有什么建议吗?

最佳答案

最后,我们的工作方法是使用 Paypal 预先批准。 如果您不知道什么是预先批准,想象一下银行摆脱困境:您请求用户允许随时向他收费,在我们的例子中,我们会在卖家出售商品时向他收取手续费。

将卖家排除在交易流程之外,允许我们让买家使用快速结账实现,从嵌入式 Web View 中完成结账。

使用这种技术,您基本上是在要求买家预授权付款。在他授予权限后,您将一个 secret token 传回您的网络服务器,在该服务器上执行真正的付款(以及任何其他安全验证)。

在将钱从买方转移到卖方后,我们会使用预先批准向卖方收取交易费用。

请注意,最后我们没有使用真正的 paypal 链式支付,但对我们来说,这种方法很好,现在一切似乎都正常。

关于ios - iOS 应用程序 + 服务器集成中的 Paypal 链式支付(或自适应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8899227/

相关文章:

ios - 如何在 iOS 设备上测量 Safari 浏览器中的网页加载时间

xcode - 如何在不包含 Mac OS X 10.6 SDK 的 Xcode 版本中构建它

iOS:如何制作像画东西一样的画板?

objective-c - Objective-c:如何存储大量数据(iOS RSS应用程序)

iphone - transitionWithView 和 animateWithDuration 的问题

android - 如何在 React Native 中使用数据库?

java - Recycler View onClick 被多次调用?

javascript - 移动样式表切换不同的屏幕宽度

android - 如何在 Android Studio 中安装 android 6.0.1 模拟器?

c# - Microsoft 信息保护 SDK : using username/password to login