【问题标题】:PayPal Failure notification贝宝失败通知
【发布时间】:2014-01-28 15:47:50
【问题描述】:

我有一个 asp.net 应用程序

用户可以购买物品和/或升级现有服务。我使用 PayPal 处理付款。

下订单后,我将订单详情放入表格中作为记录。我也这样做,以便如果用户重新访问我的页面,我会检查该表中的一个标志,告诉他们是否已收到付款。

如果没有收到,我会在我的网页上显示一条消息,告诉他们他们已申请并升级,我们目前正在等待付款。

我还禁用该用户未来的任何购买,以便他们不会升级两次(或更多)。

现在,我突然想到,当用户被重定向到 PayPal 进行购买时,付款可能会失败,或者他们可能会关闭网页。

在这种情况下,除非用户向我发送支持电子邮件,否则用户将无法升级。

什么是最佳实践?等待一段时间过去,如果没有付款,则允许用户重试或坚持使用支持电子邮件路由?

如果最好等待一段时间,那么可接受的等待时间是多少?

我正在使用 Form values 的 post back 方法来模拟向 PayPal 付款:

https://www.paypal.com/cgi-bin/webscr

【问题讨论】:

    标签: asp.net paypal


    【解决方案1】:

    你能做什么。

    每次用户准备离开您的页面并转移到贝宝付款时,您创建

    1. 克隆他们的订单
    2. 与该克隆订单相关联的新唯一 ID。

    因此,如果一个订单失败,用户随时返回是找到一个新的集合“订单”+“唯一 ID”。有了这两个元素,就可以进行最终付款。

    您最终可能会得到两个或树或更多克隆订单,但根据我的经验,因为这是我真正做的,很少见,而且对您的客户和您来说都是安全的。

    另外请注意,paypal 只接受每个订单的唯一 ID。如果一个 ID 失败,那么您无论如何都必须创建一个新 ID。

    您发送到贝宝的唯一 ID 转到 invoice 参数。 所有参数的手册都是这个pdf - PayPal Payments Standard Intergration Guide...,还有更多的 pdf 用于 paypal...

    【讨论】:

    • 您好,感谢您抽出宝贵时间发表评论。关于“克隆”订单,我已经遵循了您的想法。这正是我现在正在做的事情。但是,一件事,您为唯一 ID 传递了什么表单值?我正在使用自定义字段来指定一个 ID,但对于那个特定的客户来说它总是相同的。
    • @AndrewSimpson 唯一的订单 id... 必须不同,也许编码一些尝试的方式,用你说的这个指定的 id,也许你可以有类似 AAA-BBBB-CCC-2 当 -2 是第二次尝试。
    • 大声笑手册。什么手册? PayPal 开发者的网站毫无用处。但它是 txn_id 吗?我以为是 PayPal 自动分配的?
    • 这很酷:)。但请不要把自己放在外面。我很感激你给出的答案。
    • @AndrewSimpson 我已经更新了我的答案,是invoice,并且有包含该参数的手册以及您可以使用的所有其余部分。
    猜你喜欢
    • 2023-03-11
    • 2013-07-18
    • 1970-01-01
    • 2018-05-31
    • 2013-02-14
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多