在 PayPal 沙盒中使用 IPN 测试拒付/争议

Posted

技术标签:

【中文标题】在 PayPal 沙盒中使用 IPN 测试拒付/争议【英文标题】:Testing Chargebacks/Dispute with IPN in the PayPal Sandbox 【发布时间】:2013-09-09 13:46:30 【问题描述】:

有什么方法可以在 PayPal 沙盒测试网站上测试拒付/争议?

我尝试使用解决中心来创建新案例,既可以通过正常的收费争议方法,也可以通过解决中心的沙盒特定“创建或解决案例”部分。

无论我怎么做,我都只能将争议变成“正在接受 PayPal 审核”的状态。不发送任何 IPN 通知。

这篇支持文章详细介绍了我希望在沙盒环境中模拟的预期步骤:https://ppmts.custhelp.com/app/answers/detail/a_id/622/kw/Dispute

【问题讨论】:

【参考方案1】:

您需要做的是创建自己的 IPN 模拟器来测试它。您可以制作一个基本的 html 表单,其中将操作设置为您的 IPN URL 和与您希望从 IPN 获得的名称/值相匹配的隐藏字段。

通过这种方式,您可以在浏览器中加载您的测试并将其提交给您的 IPN 侦听器。您将能够在屏幕上看到有助于排除故障的结果。

请记住,以这种方式进行测试时,数据并非来自 PayPal 的服务器,因此 IPN 将未经验证。您需要确保您的代码逻辑能够处理这些问题。

以下是发生拒付时您会获得的一些 IPN 示例,以便您了解您应该期待什么并相应地设置您的模拟器。

新案例

txn_type = new_case
payment_date = 13:40:52 Aug 05, 2013 PDT
case_id = PP-002-576-509-683
receipt_id = 4674-2219-3481-3741
case_type = chargeback
business = payments@domain.com
verify_sign = AeD56uUedZzgp83xxTHMkZtMZ9FVAzvpMwl6OHUf9CNvlvgA2P0mbcwP
payer_email = 9FE47613HE5558457@dcc.paypal.com
txn_id = 0PC8014855508203X
case_creation_date = 18:40:23 Sep 04, 2013 PDT
receiver_email = payments@domain.com
payer_id = RZ3LX555U646Q
receiver_id = M5VRA555CSK6
reason_code = non_receipt
custom = 
charset = windows-1252
notify_version = 3.7
ipn_track_id = 2842c24f40ac

反转

mc_gross = -1972.86
protection_eligibility = Ineligible
payer_id = RZ3LX555U646Q
address_street = N/A
payment_date = 18:42:00 Sep 04, 2013 PDT
payment_status = Reversed
charset = windows-1252
address_zip = 00000
first_name = Tester
mc_fee = -44.74
address_country_code = US
address_name = Tester Testerson
notify_version = 3.7
reason_code = chargeback
custom = 
business = payments@usbswiper.com
address_country = United States
address_city = NA
verify_sign = Ai1PaghZh5FmBLCDCTQpwG8jB264ABWpa3tbhFljkaPnVj1L9ip5EwyS
parent_txn_id = 0PC8014555008203X
txn_id = 0PC8014855508203X
payment_type = instant
last_name = Testerson
address_state = NA
receiver_email = payments@domain.com
payment_fee = -44.74
receiver_id = M5VRA555CSK6
item_name = PayPal POS Web Order
mc_currency = USD
item_number = 
residence_country = US
receipt_id = 4674-2219-3481-3741
handling_amount = 0.00
transaction_subject = 
payment_gross = -1972.86
shipping = 100.00
ipn_track_id = f456d076de1ff

【讨论】:

我已经用模拟器(developer.paypal.com/webapps/developer/applications/…)做到了。我真的希望有一种方法可以从头到尾测试整个过程,就像它在生产中一样。 请问这些例子是不是基于一些真实的场景?还是你用模拟器做的? 这些示例来自真实场景。我只是用虚假数据替换了一些实际数据,但格式完全一样。

以上是关于在 PayPal 沙盒中使用 IPN 测试拒付/争议的主要内容,如果未能解决你的问题,请参考以下文章

Paypal IPN 在 paypal 帐户中不起作用,但在沙盒中正常工作

Paypal IPN 在沙盒中有效 直播时无效

测试 IPN 不应该从我的 Paypal 沙盒帐户中取钱吗?

PayPal IPN _notify-validate 在沙盒中引发错误 302

缺少 PayPal 沙盒 IPN 历史记录

贝宝沙盒返回网址