无法在paypal中配置PDT或IPN

时间:2014-05-28 17:44:16

标签: jsp paypal paypal-sandbox paypal-pdt

我正在使用java进行Web应用程序,我想使用paypal api。 我的应用程序在我的机器(在localhost中)由非在线的apache运行。 我在paypal.developper中创建了一个accaunt,例如myproject@gmail.com。我创建了一些sandbox accaunt(买家:buyer@gmail.com,以及商家卖家myproject-facilitator@gmail.com),我已经运行了一些测试,一切正常。

我的问题是:我无法配置PDT(Payement Data Transfer)或IPN(即时付款通知)。

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

现在,当我进行一些测试时,它甚至不会进行自动返回,它就像我在沙箱上进行测试一样进行了付款:

我这样做:

  <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! "/>

即使我将电子邮件更改为沙箱bussines电子邮件: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和我端口 - 端口80,在外部IP(www.whatismyip.com中的那个)。例如,它将是:198.122.141.2 现在,当我在浏览器198.122.141.2:80/myproject/index.jsp中尝试时,它什么也没有显示,或者说它无法找到对象。 即便如此,我尝试设置一个动态的ip,dydns或者noip,这将是myproject.ns0.it/myproject/index.jsp中的某些内容并且它没有显示任何内容。

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

1 个答案:

答案 0 :(得分:0)

我解决了PDT部分,所以我将发布我的解决方案。我想要pdt在沙盒中工作。首先,我在paypal开发者上创建一个accaund。接下来在Application- Sandbox accaunt中 - 我创建一个买方(或更多)和一个业务accaunt。我点击业务accaunt的配置文件(ex myaccaunt-facilitator@gmail.com),然后点击更改密码。(这是我在问这个问题时失踪的部分)。然后我点击Enter SandboxSite,我使用刚刚创建的电子邮件和密码登录。 IN profile-Selling Tools-网站首选项。我点击自动Return:ON,PDT:ON,以及return和cancel url。现在一切正常。