PayPal java postback API 总是无效的
Posted
技术标签:
【中文标题】PayPal java postback API 总是无效的【英文标题】:PayPal java postback API is always INVALID 【发布时间】:2019-04-22 19:31:31 【问题描述】:以下问题仅涉及“实时”配置,而不涉及“沙盒”配置:
我正在用 java 重写一个 php 后发端点。 现有的 PHP 使用 this 示例,没有任何凭据,并且使用此 url:https://ipnpb.paypal.com/cgi-bin/webscr
上述端点似乎每次都返回“已验证”响应。
另一方面,Java Core SDK 有这种回帖方法
IPNMessage::validate()
使用 url https://www.paypal.com/cgi-bin/webscr,并且(可能)使用凭据(用户名、密码、令牌和 AppId)。
由于“无效”响应,上述 API 始终返回 false。
我的问题是:
-
这是在 Java 中进行“回发”验证的正确方法吗?
我是否需要凭据才能进行回帖验证?
【问题讨论】:
【参考方案1】:看来可以使用 Java 的端点 (https://www.paypal.com/cgi-bin/webscr)。
不需要任何凭据。
我得到“无效”IPN 的原因是回发请求的编码不正确。 为了修复 PayPal 中的编码(发送 IPN),您应该转到您的 PayPal 帐户,然后选择屏幕底部的“个人资料和设置”>“我的销售工具”>“PayPal 按钮语言编码”> “更多选项”,然后选择 Java Core SDK 的 encoding(“windows-1252”)。
或者,您可以通过在配置映射上添加“charset”键/值来修复回发的编码(请参阅README,并添加以下内容以获得 UTF-8 编码):
customConfigurationMap.put("charset","UTF-8");
【讨论】:
以上是关于PayPal java postback API 总是无效的的主要内容,如果未能解决你的问题,请参考以下文章
paypal Java Rest API 在付款执行前获取运输信息
如何使用 java 和 paypal api 在沙盒模式下进行大规模支付?