PayPal 已收费,但付款响应为 "INVALID"
PayPal charged, but payment response is "INVALID"
我们客户的一些网上商店提供通过 PayPal 结帐的功能。
实际上我们遇到了问题,当我们强制结账时,我们得到的答案是出了问题。但是,如果我们检查 PayPal 账户,就会发现收费仍在进行。
现在我们正在寻找原因并找出以下内容:
- 如果我们使用 PayPal 沙盒帐户,一切正常
- 付款状态为 "Completed"(两种情况下)
- www.sandbox.paypal.com returns "VERIFIED"
- www.paypal.com returns "INVALID"
在这种情况下,有人可以帮助我们吗?
我将附上两个包含您服务器响应的文件。
Webshop-Request-Parameters:
cmd=_notify-validate&mc_gross=0.01&invoice=zz_zzzzzzzz&protection_eligibility=不合格&item_number1=zzzzzzzz&payer_id=CCCCCCCCCCCCCC&tax=0.00&payment_date=05%3A10%3A46+Apr+29%2C+2015+PDT&payment_status=Completed&charset=UTF-8&mc_shipping=0.00&mc_handling=0.00&first_name=JOHN&mc_fee=0.01¬ify_version=3.8&custom=2&payer_status=verified&business=john%40doe.com&num_cart_items=1&mc_handling 1=0.00&payer_email=john%40aol.com&verify_sign=GiPC9Bj...&mc_shipping1=0.00&tax1=0.00&txn_id=CCCCCCCCCCCCCCCC&payment_type=即时&last_name=Doe&item_name1=00000000&receiver_email=john%40doe.com&payment_fee=0.01&quantity1=1&receiver_id=CCCCCCCCCCCCCC& txn_type=购物车&mc_gross_1=0.01&mc_currency=美元&residence_country=美国&transaction_subject=2&payment_gross=0.01&auth=AHMdYo7nB...
...=哈希算法
响应是标准 PayPal-Header 加上 "INVALID"
来自 PayPal 支持团队的一些 Support-Responses:
1.You 需要在 HTTP Header 中将您的 PayerID 作为 User-Agent
2.UseURLhttps://ipnpb.paypal.com/cgi-bin/webscr为post-back绕过AKAMAI
两种解决方案都不成功
下一个PayPal支持解决方案
•检查您发布的回复是否正确 URL,即 https://www.sandbox.paypal.com/cgi-bin/webscr (for Sandbox IPNs) or https://www.paypal.com/cgi-bin/webscr(对于实时 IPN)。如果您在沙盒中进行测试并且您的侦听器发回实时站点(反之亦然),您将收到 INVALID。
•确认您对测试 IPN 消息的响应包含与测试消息完全相同的变量和值,并且它们的顺序与测试消息中的顺序相同。最后,验证原始变量前面是否有 cmd=_notify-validate 变量。
•验证您对 IPN 的响应: ◦包含与原始 IPN 完全相同的变量和值。
◦按照与原始 IPN 相同的顺序放置这些变量和值。
◦在这些变量之前加上 cmd=_notify-validate 变量。
•确保您对响应字符串使用与原始IPN 消息的字符集字段中指定的编码相同的字符编码。使用 IPN 模拟器进行测试时,字符编码始终为 UTF-8。
...也没有成功
我今天在客户购物后的 PayPal post 响应中遇到了一些问题。他们中有些人从未来过,有些人在实际付款后迟到了。目前它已解决,但我认为我们正在调试 PayPal 服务器上的问题。我想最好的解决办法是等待其他有类似问题的消费者和PayPal的回应。
问题更新:问题是,paypal 实际上是收费的,所以请求是有效的。但是结帐过程显示为无效,因此响应无效。 Paypal 支持说他们不知道我们发送给他们的请求(来自我们网站的其他人)有什么不同,并且请求已正确完成。所以我们有其他网站使用相同的技术和请求,但没有人知道哪里出了问题。
问题是由帐户设置中错误的字符集引起的。
在 "My Account" 设置中(在 "More Encoding Options" 下)必须为您的应用程序发送的内容设置 Econding。 (在我们的例子中,它必须从默认的 paypal 帐户安装更改为 UTF-8)
我们客户的一些网上商店提供通过 PayPal 结帐的功能。 实际上我们遇到了问题,当我们强制结账时,我们得到的答案是出了问题。但是,如果我们检查 PayPal 账户,就会发现收费仍在进行。 现在我们正在寻找原因并找出以下内容: - 如果我们使用 PayPal 沙盒帐户,一切正常 - 付款状态为 "Completed"(两种情况下) - www.sandbox.paypal.com returns "VERIFIED" - www.paypal.com returns "INVALID"
在这种情况下,有人可以帮助我们吗?
我将附上两个包含您服务器响应的文件。
Webshop-Request-Parameters:
cmd=_notify-validate&mc_gross=0.01&invoice=zz_zzzzzzzz&protection_eligibility=不合格&item_number1=zzzzzzzz&payer_id=CCCCCCCCCCCCCC&tax=0.00&payment_date=05%3A10%3A46+Apr+29%2C+2015+PDT&payment_status=Completed&charset=UTF-8&mc_shipping=0.00&mc_handling=0.00&first_name=JOHN&mc_fee=0.01¬ify_version=3.8&custom=2&payer_status=verified&business=john%40doe.com&num_cart_items=1&mc_handling 1=0.00&payer_email=john%40aol.com&verify_sign=GiPC9Bj...&mc_shipping1=0.00&tax1=0.00&txn_id=CCCCCCCCCCCCCCCC&payment_type=即时&last_name=Doe&item_name1=00000000&receiver_email=john%40doe.com&payment_fee=0.01&quantity1=1&receiver_id=CCCCCCCCCCCCCC& txn_type=购物车&mc_gross_1=0.01&mc_currency=美元&residence_country=美国&transaction_subject=2&payment_gross=0.01&auth=AHMdYo7nB...
...=哈希算法
响应是标准 PayPal-Header 加上 "INVALID"
来自 PayPal 支持团队的一些 Support-Responses:
1.You 需要在 HTTP Header 中将您的 PayerID 作为 User-Agent 2.UseURLhttps://ipnpb.paypal.com/cgi-bin/webscr为post-back绕过AKAMAI
两种解决方案都不成功
下一个PayPal支持解决方案
•检查您发布的回复是否正确 URL,即 https://www.sandbox.paypal.com/cgi-bin/webscr (for Sandbox IPNs) or https://www.paypal.com/cgi-bin/webscr(对于实时 IPN)。如果您在沙盒中进行测试并且您的侦听器发回实时站点(反之亦然),您将收到 INVALID。
•确认您对测试 IPN 消息的响应包含与测试消息完全相同的变量和值,并且它们的顺序与测试消息中的顺序相同。最后,验证原始变量前面是否有 cmd=_notify-validate 变量。
•验证您对 IPN 的响应: ◦包含与原始 IPN 完全相同的变量和值。 ◦按照与原始 IPN 相同的顺序放置这些变量和值。 ◦在这些变量之前加上 cmd=_notify-validate 变量。
•确保您对响应字符串使用与原始IPN 消息的字符集字段中指定的编码相同的字符编码。使用 IPN 模拟器进行测试时,字符编码始终为 UTF-8。
...也没有成功
我今天在客户购物后的 PayPal post 响应中遇到了一些问题。他们中有些人从未来过,有些人在实际付款后迟到了。目前它已解决,但我认为我们正在调试 PayPal 服务器上的问题。我想最好的解决办法是等待其他有类似问题的消费者和PayPal的回应。
问题更新:问题是,paypal 实际上是收费的,所以请求是有效的。但是结帐过程显示为无效,因此响应无效。 Paypal 支持说他们不知道我们发送给他们的请求(来自我们网站的其他人)有什么不同,并且请求已正确完成。所以我们有其他网站使用相同的技术和请求,但没有人知道哪里出了问题。
问题是由帐户设置中错误的字符集引起的。 在 "My Account" 设置中(在 "More Encoding Options" 下)必须为您的应用程序发送的内容设置 Econding。 (在我们的例子中,它必须从默认的 paypal 帐户安装更改为 UTF-8)