我想在市场 iphone 应用程序中实施贝宝链式支付(不是自适应支付方式之一),并且我希望我的服务器能够跟踪所有支付步骤,以避免在同一产品上同时进行多次购买(它是实体产品,不能购买两次)。
我从 paypal 阅读了关于自适应支付流程的文档,关于移动集成的文档以及关于IPN 服务器端实现的文档。
现在实现这一目标的唯一方法似乎是执行以下操作:
- 当用户点击支付按钮时,客户端调用我们的服务器为该产品创建“待处理”交易。
- 客户端调用本机 paypal sdk 向用户展示支付视图以及我们服务器返回的所有信息。
- paypal 会调用我们的服务器来通知已完成的付款,并且服务器会在此处完成先前创建的待处理交易。
- 贝宝致电客户通知已完成付款,此处显示“谢谢”屏幕。
由于以下原因,我不会做这种事情:
- 我必须在产品上加一个“锁”以避免重复购买:我可以放这个锁的唯一地方是在调用贝宝 UI 之前,然后解锁它以防用户取消操作。如果用户长时间停留在贝宝确认上怎么办?我可以在服务器上设置一个超时时间(例如 1 小时),但这不会避免用户在那段时间之后完成购买!
- 我必须从客户那里设置付款详情(例如金额和收款人电子邮件)。正如我所写的,我可以使用服务器提供的数据,但这会导致我遇到一些安全性和复杂性问题。
- 使用本机 sdk,用户可以从他们现有的送货地址之一中进行选择,但不能创建或编辑新地址。我必须在贝宝之外询问送货地址并将这些数据传递到我自己的服务器。
有什么建议么?