iOS 应用程序 + 服务器集成中的贝宝链式支付(或自适应)
Posted
技术标签:
【中文标题】iOS 应用程序 + 服务器集成中的贝宝链式支付(或自适应)【英文标题】:paypal chained payment (or adaptive) inside iOS app + server integration 【发布时间】:2012-02-12 12:41:06 【问题描述】:我想在市场 iphone 应用程序中实施 paypal 链式支付(不是自适应支付方式之一),并且我希望我的服务器能够跟踪所有支付步骤以避免在同一产品上同时进行多次购买(是实体产品,不能购买两次)。
我从 paypal 阅读了关于 adaptive payment flow 的文档,关于 mobile integration 的文档以及关于 IPN server side 实现的文档。
现在实现这一目标的唯一方法似乎是执行以下操作:
-
当用户点击支付按钮时,客户端调用我们的服务器为该产品创建“待处理”交易。
客户端调用本机 paypal sdk 向用户展示支付视图以及我们服务器返回的所有信息。
paypal 调用我们的服务器以通知已完成的付款,服务器在此完成之前创建的待处理交易。
paypal 致电客户通知已完成付款,此处显示“谢谢”屏幕。
出于以下原因,我不会做这种事情:
我必须在产品上加一个“锁”以避免重复购买:我可以放这个锁的唯一地方是在调用贝宝 UI 之前,然后解锁它以防用户取消操作。如果用户长时间停留在贝宝确认上怎么办?我可以在服务器上设置一个超时时间(例如 1 小时),但这不会避免用户在那段时间之后完成购买! 我必须从客户端设置付款详情(例如金额和收款人电子邮件)。 正如我所写,我可以使用服务器提供的数据,但这会导致我遇到一些安全性和复杂性问题。 使用本机 sdk,用户可以从他们现有的送货地址之一中进行选择,但不能创建或编辑新地址。我必须在 paypal 之外询问收货地址并将这些数据传递到我自己的服务器。有什么建议吗?
【问题讨论】:
您解决了这些问题吗?你能分享一下你的经验吗? @Mighter 刚刚分享了我们使用贝宝的经验。希望这会有所帮助 【参考方案1】:最后,我们的工作方法是使用贝宝预先批准。 如果您不知道什么是预先批准,想象一下银行摆脱困境:您请求用户允许随时向他收费,在我们的例子中,我们会在卖家出售商品时向他收取手续费。
将卖家排除在交易流程之外,允许我们让买家使用快速结账实施,从嵌入式 Web 视图中完成结账。
使用这种技术,您基本上是在要求买家预授权付款。在他授予权限后,您将一个秘密令牌传回您的网络服务器,在那里执行真正的付款(以及任何其他安全验证)。
在将钱从买方转移到卖方后,我们会使用预先批准向卖方收取交易费用。
请注意,最后我们没有使用真正的 paypal 链式付款,但对我们来说,这种方法很好,现在一切似乎都正常。
【讨论】:
这并不能解决延迟链支付的问题,因为它不能满足所有人的需求。不过很好的解决方法。 @nebillo - 确认。 1st,与卖家建立预先批准(这似乎是验证卖家贝宝地址的好方法)。 2nd,在买家和卖家之间使用IPN发起简单的支付,检查状态和支付,并使用Preapproval Payment向卖家收取第二笔交易的佣金。我的问题是 - 为什么这比进行连锁付款并通过单笔交易收取费用更好? 因为在移动设备上处理链式支付的唯一方法是使用 paypal MPL sdk,这真的很糟糕,并将介绍我在帖子末尾描述的三个问题。只是为了澄清我们根本没有使用 IPN。服务端自主调用paypal api,同步接收回调。以上是关于iOS 应用程序 + 服务器集成中的贝宝链式支付(或自适应)的主要内容,如果未能解决你的问题,请参考以下文章