PayPal 已收费,但付款响应为“无效”

Posted

技术标签:

【中文标题】PayPal 已收费,但付款响应为“无效”【英文标题】:PayPal charged, but payment response is "INVALID" 【发布时间】:2015-07-16 19:04:34 【问题描述】:

我们客户的一些网上商店通过 PayPal 提供结帐服务。 实际上我们有一个问题,当我们强制结账时,我们得到的答案是出错了。但是,如果我们检查 PayPal 帐户,我们会看到收费仍然发生。 现在我们正在寻找原因并弄清楚以下内容: - 如果我们使用 PayPal 沙盒帐户,一切正常 - 付款状态为“已完成”(两种情况下) - www.sandbox.paypal.com 返回“已验证” - www.paypal.com 返回“无效”

在这种情况下有人可以帮助我们吗?

我将附上两个文件,其中包含来自您服务器的响应。

网店-请求-参数:

CMD = _notify-验证&mc_gross = 0.01&发票= zz_zzzzzzzz&protection_eligibility =不合格的&item_number1 = zzzzzzzz&payer_id = CCCCCCCCCCCCC&税= 0.00&PAYMENT_DATE = 05%3A10%3A46 +月+ 29%2C + 2015 + PDT&PAYMENT_STATUS =完成&字符集= UTF-8&mc_shipping = 0.00&mc_handling = 0.00&first_name的= JOHN&mc_fee = 0.01 notify_version = 3.8&定制= 2&payer_status =验证的&商务=约翰%40doe.com&num_cart_items = 1&mc_handling1 = 0.00&PAYER_EMAIL =约翰%40aol.com&verify_sign = GiPC9Bj ...&mc_shipping1 = 0.00&tax1 = 0.00&txn_id = CCCCCCCCCCCCCCCCC&payment_type =即时与姓氏= Doe的item_name1 = 00000000&RECEIVER_EMAIL = john%40doe.com&payment_fee=0.01&quantity1=1&receiver_id=CCCCCCCCCCCCC&txn_type=cart&mc_gross_1=0.01&mc_currency=USD&residence_country=US&transaction_subject=2&payment_gross=0.01&auth=AHMdYo7nB...

... = 哈希算法

响应是标准的 PayPal-Header 加上一个“INVALID”

来自 PayPal 支持团队的一些支持响应:

1.您需要在 HTTP 标头中包含您的 PayerID 作为 User-Agent 2.使用URLhttps://ipnpb.paypal.com/cgi-bin/webscr回传绕过AKAMAI。

两种解决方案都不成功

下一个 PayPal 支持解决方案

•检查您是否将回复发布到正确的 URL,即https://www.sandbox.paypal.com/cgi-bin/webscr(用于沙盒 IPN)或https://www.paypal.com/cgi-bin/webscr(用于实时 IPN)。如果您在沙盒中进行测试并且您的听众发回实时站点(反之亦然),您将收到 INVALID。

•验证您对测试 IPN 消息的响应是否包含与测试消息完全相同的变量和值,并且它们与测试消息中的顺序相同。最后,验证原始变量前面是否有 cmd=_notify-validate 变量。

•验证您对 IPN 的响应: ◦包含与原始 IPN 完全相同的变量和值。 ◦ 以与原始 IPN 相同的顺序放置这些变量和值。 ◦在这些变量之前加上一个 cmd=_notify-validate 变量。

•确保对响应字符串使用与原始 IPN 消息的字符集字段中指定的编码相同的字符编码。使用 IPN 模拟器进行测试时,字符编码将始终为 UTF-8。

...也失败了

【问题讨论】:

您能否粘贴收到无效响应的交易 ID? 【参考方案1】:

问题是由帐户设置中设置的错误字符集引起的。 在“我的帐户”设置中(在“更多编码选项”下),必须为您的应用程序发送的内容设置 Econding。 (在我们的例子中,它必须从 paypal 帐户安装默认更改为 UTF-8)

【讨论】:

设置路径:Profil -> 我的销售工具-> PayPal 按钮语言编码 -> 更多选项 注册PayPal账户时会设置默认编码.系统会根据您的原籍国确定您的默认语言和编码。 developer.paypal.com/docs/classic/paypal-payments-standard/…【参考方案2】:

关于问题的更新:问题是,paypal 实际收费,所以请求是有效的。但是结帐过程显示为无效,因此响应无效。 Paypal 支持人员表示,他们不知道我们(从我们网站的其他人)发送给他们的请求有什么不同,并且请求已正确完成。所以我们有其他网站使用相同的技术和请求,没有人知道出了什么问题。

【讨论】:

您介意将此移至评论吗?这不是一个真正的答案。【参考方案3】:

我今天在客户购物后的 PayPal 回复中遇到了一些问题。他们中的一些人从未来过,而有些人在实际付款后迟到了。目前它已解决,但我认为我们正在调试 PayPal 服务器上的问题。我想最好的解决方案是等待其他有类似问题的消费者和 PayPal 响应。

【讨论】:

以上是关于PayPal 已收费,但付款响应为“无效”的主要内容,如果未能解决你的问题,请参考以下文章

paypal 验证付款

PayPal API 侦听器网站付款标准 URI

Django Paypal 无效的付款日期

尝试使用 ActiveMerchant 设置 Paypal 定期付款时“令牌无效”

Docapture 方法 paypal api 中的交易 ID 无效

Paypal IPN 沙盒 - IPN 侦听器 - 未验证或无效