jsp - 无法在 paypal 中配置 PDT 或 IPN

标签 jsp paypal paypal-sandbox paypal-pdt

我正在用 java 做一个 web 应用程序,我想使用 paypal api。 我的应用程序在我的机器上(在本地主机上)由 apache non in internet 运行。 我在 paypal.developper 中创建了一个帐户,例如 myproject@gmail.com 。我创建了一些沙箱帐户(买家:buyer@gmail.com,以及商务卖家 myproject-facilitator@gmail.com),并且我运行了一些测试,一切正常。

我的问题是:我无法配置 PDT(付款数据传输)或 IPN(即时付款通知)。

我转到我的 Paypal 个人资料 - 销售工具 - 网站首选项。我点击自动返回:ON,PDT:ON,然后返回 url:http://127.0.0.1/myproject/prenotationIsDone.jsp 我保存它,它会显示我的身份 token 。

现在当我运行一些测试时,它甚至不会自动返回,它会像我在沙盒帐户上进行测试时那样进行支付:

我做这样的事情:

  <form name="paypalForm" action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">  
<input type="hidden" name="cmd" value="_xclick" />
     <input type="hidden" name="business" value="myproject@gmail.com" />

     <input type="hidden" name="custom" value="1123" />
     <input type="hidden" name="item_name" value="Camera" />
     <input type="hidden" name="amount" value="20"/>
     <input type="hidden" name="rm" value="1" />
     <input type="hidden" name="return" value="http://127.0.0.1/myproject/prenotationIsDone.jsp" />
     <input type="hidden" name="cancel_return" value="http://127.0.0.1/myproject/cancel.jsp" />


           <input type="submit" value="Continua! "/>

即使我将电子邮件更改为沙盒业务电子邮件:myproject-facilitator@gmail.com,它也是一样的。它只是在没有自动返回和使用 PDT 的情况下进行支付。

在 jsp 文件中我会有这样的一行:

Enumeration en = request.getParameterNames();

while(en.hasMoreElements()){
String paramName = (String)en.nextElement();

out.println("parameters"+ paramName);
}

当然没有任何像 tx 这样的参数,因为 PDT 不起作用。 知道如何解决这个问题吗?

第二个问题:我已经看到 IPN(还有 PDT,但我不确定 PDT)在本地服务器上不起作用,因为它需要从外部看到互联网。 我怎样才能解决这个问题 ? 我尝试了这些步骤,但我想我做错了什么: 首先,我将 apache 的端口从默认的 8080 更改为端口 80。 我去了 NAT 中的路由器,然后在外部 ip(www.whatismyip.com 中的那个)中转发端口 80。例如它将是:198.122.141.2 现在,当我在浏览器 198.122.141.2:80/myproject/index.jsp 中尝试时,它什么也没显示,或者说找不到对象。 即便如此,我尝试设置一个动态 ip、dydns 或 noip,它会在 myproject.ns0.it/myproject/index.jsp 中出现,但它不显示任何内容。

请有人帮我解决这个问题,或者有没有其他方法可以在我的本地服务器上验证 paypal 的付款。 谢谢你的时间,对不起我的英语

最佳答案

我解决了 PDT 部分,所以我将发布我的解决方案。我希望 pdt 在沙箱中工作。首先,我在 paypal developer 上创建了一个帐户。接下来在应用程序 - 沙盒账户 - 我创建一个买家(或更多)和一个商业账户。我点击企业账户的个人资料(例如 myaccaunt-facilitator@gmail.com),然后点击更改密码。(这是我在问问题时遗漏的部分)。然后我单击 Enter SandboxSite ,我使用刚刚创建的电子邮件和密码登录。 IN 配置文件 - 销售工具 - 网站首选项。我点击自动返回:开启、PDT:开启,以及返回和取消网址。现在一切正常。

关于jsp - 无法在 paypal 中配置 PDT 或 IPN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23918453/

相关文章:

java - Google App Engine - 是否可以在访问 html 页面时启动 jvm?

java - TeamCity BuildRunner 插件

php - Paypal IPN 监听器代码挂起/无响应

ios - 如何使用 AFNetworking 传递数组值?

forms - 使用表格在单独的行中显示 PayPal 项目名称/描述

java - 使用 Servlet 和 JSP 的最佳设计?

java - foreach循环在jsp中不显示任何输出

php - paypal支付如何只添加一种货币

php - PayPal Pro/Express Omnipay 网关 - 信用卡 header 无效

paypal-sandbox - Paypal 沙箱。无法确认测试帐户上的银行帐户并购买订阅