如何使用ExpressCheckout为PayPal定期付款设置IPN URL?

15
根据PayPal文档,使用ExpressCheckout时,无法对定期付款进行即时付款通知(IPN)。以下是我得出这个结论的方法:
  1. SetExpressCheckout文档中关于NOTIFYURL的说明:

    通知URL仅适用于DoExpressCheckoutPayment。在SetExpressCheckoutGetExpressCheckoutDetails中设置此值将被忽略。

  2. 我没有使用ExpressCheckout进行一次性付款,只是创建了一个重复收费的配置文件。因此,我跳过了像Recurring Payments integration guide中所指定的DoExpressCheckoutPayment调用。实际上,如果我执行DoExpressCheckoutPayment调用,它将无效,因为我已将金额设置为0

  3. 根据1.,除非调用DoExpressCheckoutPayment,否则将忽略NOTIFYURL(确切地说是PAYMENTREQUEST_0_NOTIFYURL)。然而,我尝试在SetExpressCheckoutPayment调用中设置它。

  4. 使用IPN模拟器,我成功接收到IPN通知。

  5. 成功创建新的重复支付配置文件时,使用CreateRecurringPaymentsProfile我没有收到IPN通知。

  6. 我没有找到与重复支付相关的API调用,可以用来设置NOTIFYURL

如何在不需要初始付款的情况下使用ExpressCheckout设置重复支付的IPN URL,需要INITAMT或其他需要DoExpressCheckoutPayment

你尝试过将初始付款设置为0吗? - jayarjo
@jayarjo 我没有尝试过。然而我不认为这会起作用。PayPal极不可能允许交易金额为零。即使他们这样做了,这看起来在客户的银行对账单上也会很奇怪。然而这是一种hack方法。我真的希望PayPal API能够在本地支持它。 - Haralan Dobrev
2个回答

11
您可以在您的PayPal账户个人资料中设置IPN URL。

我想为每个不同的配置文件设置不同的IPN。通过API设置不可能吗?谢谢! - Haralan Dobrev
4
不需要循环付款。 - PP_MTS_Chad
@PP_MTS_Chad,PayPal对于多个项目有什么建议的解决方案?我是否需要为每个项目使用单独的PayPal账户?还是我需要创建一个集中的IPN呼叫中心,然后按项目分类处理传入的通知? - jayarjo
4
这是无耻的回答。 - Eugene Manuilov
如果IPN地址只能从PayPal账户中定义,那么如何支持测试环境? - Jordan
当我的循环付款成功后,我没有收到任何IPN响应。 - Hasibur

0

如果您想为每个交易设置不同的IPN URL,只需将"&NOTIFYURL=yoursite.com/ipnhandle"添加到您的NVP字符串中。


1
如果您仔细阅读了PayPal文档和我的问题,您就会知道使用定期付款是不可能的。 - Haralan Dobrev
如果您正在使用快速结帐,您可以这样做。 - Bhushan Bamania
我正在使用ExpressCheckout,但是我没有使用DoExpressCheckoutPayment API操作。请再次阅读我的问题。我知道如何在哪里使用NOTIFYURL。问题是PayPal不支持我的用例。您可以在已接受答案下的评论中查看更多详细信息。 - Haralan Dobrev
如果这在您的情况下无效,则 PayPal 帐户中设置的 IPN URL 将每次向您发送通知。您可以根据交易类型(txn_type)筛选通知。 - Bhushan Bamania
谢谢!这与我所做的和被接受的答案非常相似。我真的希望PayPal将来能扩展他们的API并支持这个功能。 - Haralan Dobrev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接