- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个 SAAS 网络应用程序,需要支付订阅费才能使用。如果订阅有效,一切正常,否则应用程序将进入只读模式,直到客户续订订阅。我已经使用 PayPal API 开发了支付流程。
问题是 PayPal 文档是这样说的:
"Although PayPal usually processes IPN messages immediately, IPN is not synchronized with actions on your website. Internet connectivity is not always 100% reliable and IPN messages can be lost or delayed. The IPN service automatically resends messages until the listener acknowledges them. The service resends messages for up to 4 days.
Because IPN is not a real-time service, your checkout flow should not wait for the IPN message before it is allowed to complete. If the checkout flow is dependent on receiving an IPN message, processing can be delayed by system load or other reasons. You should configure your checkout flow to handle a possible delay."
不幸的是,这正是我的情况:当客户续订订阅时,我需要立即激活应用程序,所以我将所有逻辑都放在“通知回调”中,我必须在其中创建订单、发送确认电子邮件、更新一些 session 变量...但我如果 PayPal IPN 有延迟,这是一个问题!这几天我在沙盒模式下做了一些测试,在一些情况下,我什至在成功支付后 4 小时就得到了 IPN 的答复!这对我的应用来说是 Not Acceptable !
最后的问题是:我的案例的最佳解决方案是什么?将应用程序激活从“通知回调”移动到“成功回调”是否有意义?可能有问题?
谢谢
最佳答案
不要为此使用 IPN;它不太合适,而且不是为了插入同步用户体验流程而设计的。它作为一种启动离线履行的方式效果很好,但如果客户正在积极等待访问,则可能会延迟他们。
您无需指定您使用的是哪种 PayPal 产品,但每种产品都应提供一种方式来立即向您反馈付款已完成。例如,对于 Express Checkout 或任何基于 API 的支付,您可以在收到成功的 API 响应(在 Express Checkout 的情况下为 DoEC API)时采取行动(激活/重新激活订阅)。
对于仅限网络/非 API 的产品,当客户重定向到您的 return_url 时,您可以采取行动,如果需要,使用 PDT 安全地获取有关交易的信息(它可以包括您回发的 IPN 样式 key 向 PayPal 进行验证,就像您使用 IPN 所做的那样)。
如果您担心有人在浏览器重定向到您之前关闭浏览器的极端情况,或者其他某种连接中断或编程错误,您可以也检查并激活/完成收到 IPN 以捕获任何后果。因此,所有完成正常支付流程的客户都会立即被激活;如果他们做了一些奇怪的事情(或者你的代码被破坏了,或者其他什么),那么激活仍然会发生,尽管可能会延迟几秒钟或几分钟。
关于paypal - IPN延迟和SAAS应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014855/
我正在 Linux 服务器上的共享主机上使用 PHP/HTML 构建 SAAS 产品,但我被困在域名部分。 目标 我将在 app.mysaas.com 上托管我的 SAAS 应用程序 我的客户将他们的
我想知道 SaaS 和 API 有什么区别。我觉得它在某种程度上是一样的。假设我正在构建 Rails 或 Flask api,我可以说我正在构建 Rails 或 Flask SaaS? saas:软件
我正在开发 SaaS(软件即服务)Web 应用程序,并且正在为单独的帐户使用子域。 我应该阻止用户使用哪些子域。 我目前拥有的是...管理员、管理员、博客、支持和帮助。我记得在 Quora 上看到过一
我们通过每月订阅销售软件即服务,我想弄清楚我们是否可以通过 Schema.org 的规范提供元数据。 我一直在考虑products ,但它似乎不支持订阅费用。 对于产品,谷歌似乎考虑到了电子商务实物类
我希望为我的 SAAS 互联网应用程序的用户提供一个状态仪表板,类似于谷歌和亚马逊提供的状态仪表板。 有谁知道支持这种接口(interface)的现成的第 3 方托管服务? 谷歌示例: http://
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
我开发了许多部门客户端-服务器应用程序,现在准备开始将其中一个应用程序迁移到 SaaS 模型。我做过一些基本的 Web 开发,但在 SaaS 架构方面我还是个新手。 当我尝试设计架构时,首先想到的问题
我在一家 SaaS 公司工作,该公司每六周向我们的客户发布新功能和错误修复。当我们编写代码更改时,它们在到达生产服务器之前会经过不同的步骤(如状态机)。根据更改是在常规开发周期中完成还是作为紧急修复完
我正在构建一个基于 SaaS 的 Web 应用程序,用户可以使用他们自己的域连接到该应用程序并将他们的公司品牌应用于该应用程序。 如何根据访问的域自定义我的应用程序的登录页面。没有用于识别客户身份的登
我想启动一个软件即服务应用程序,它将为我的客户提供域注册,以便允许应用程序通过他们自己的注册域进行访问。 应用程序将使用 CakePHP 构建。通过访问某人的 CakePHP 应用程序,CakePHP
为了扩充自己的知识面,我想尝试做一个SaaS应用。我不太关心应用程序的功能,但我想了解它背后的技术。所以我的问题是,有人会如此友善并告诉我从哪里开始吗?一些好的阅读、教程、文章或书籍?我最感兴趣的是:
建议将什么作为软件即服务产品的身份验证解决方案? 具体来说,我的产品的客户通常信息技术技能较低,甚至可能在其组织内没有 IT 部门。我仍然想让我的应用程序根据其内部目录服务(eDirectory、Ac
我知道这个问题之前已经发布过,但没有得到彻底的回答。另外我认为它仍然取决于问题参数。假设您的 SaaS 服务有很多客户,但每个客户的数据量相对较少,那么拥有一个数据库可能是有意义的。 如果您的客户长期
我们公司制作基于网络的应用程序,按工作站收费。 这意味着用户/通行证只能在一台特定的机器上使用。 目前发生的情况是多个用户正在共享凭据,如果他们没有同时进行,我们没有任何方法可以防止这种情况发生。 应
这不完全是一个编程问题,但我认为这仍然是为我的问题找到答案的最佳社区。 我想知道是否有描述服务的特定技术术语,如 sandstorm.io .我正在寻找一种比“个人云”或“SaaS”更具体的流行词,准
我正在创办一家提供 Web SaaS ( https://tuilder.com/ ) 的初创公司。大计划和潜力。 我对 YugaByte 的全局复制感兴趣。目前我已经建立了一个对 BadgerDB
我正在构建一个 Web 门户,该门户将在托管模型 (SAAS) 上租给客户,他们将在自己的域中使用具有自己品牌的整个门户功能。 现在我不希望他们获取我的门户网站的文件,但仍然能够使用自定义品牌门户。
我知道我的谷歌搜索技能让我失望了,因为那里有 必须是这样的:一个简单、易于使用的远程托管目录服务(更好的是,通过几个不同的接口(interface)和 SSO 公开用户目录)。 你知道一个和/或有一个
我目前正在运行一个 SAAS 应用程序,并且正在使用 Mailjet 从我们的应用程序发送邮件。 一些较大的客户一直要求允许从他们的域(例如 info@largehotel.com)而不是我们的系统(
在我构建的几乎每个应用程序中,我都会创建某种用户日志表来记录我的实际用户(不是访问者,而是拥有帐户的人)在网站上执行的各种事件。这主要用于客户服务问题,让我能够提取用户访问过的页面和操作的记录。 这样
我是一名优秀的程序员,十分优秀!