Forum » Programiranje » PayPal IPN sporočila
PayPal IPN sporočila
draljo0007 ::
Imam težavo z Paypal IPN kot je razvidno že iz teme. Vse sem naredil tako kot piše v dokumentaciji. Najprej sem napisal svoj programček, ki bi bil namenjen kot listener za IPN sporočila. Vendar mi po nobeni strani ni delovalo. Nato sem si pobral z njihove strani(paypal.com) že narejen primer, vendar imam še vedno težave. Težava je v tem, da ko nekaj nekdo kupi oz. potrdi potrdilo na strani paypala v svojem profilu vidim da je bilo sporočilo poslano vendar moj program ne izpiše da bi se kaj dogajalo. No da je še bolj zanimivo naj povem tako, da ko sem z wiresharkom poslušal promet sem videl da prihajajo TCP paketi z njihovega strežnika na moj strežnik kjer imam aplikacijo. Ima še kdo takšne težave oziroma jih je imel in kako je rešil? Aja uporabljam pa javo ter glassfish strežnik, če vam kaj to pomaga. Lep pozdrav in hvala za odgovore!
dasf ::
Testiraj z https://developer.paypal.com/webapps/de...
Če aplikacija prejema pakete je najbolj verjetno da iz nekega razloga ne odgovarja oz ne. odgovori pravilno. Preglej zadnji paket IPN postopka, ponavadi vsebuje opis napake oz "VERIFIED" če je vse v redu.
Če aplikacija prejema pakete je najbolj verjetno da iz nekega razloga ne odgovarja oz ne. odgovori pravilno. Preglej zadnji paket IPN postopka, ponavadi vsebuje opis napake oz "VERIFIED" če je vse v redu.
draljo0007 ::
Testiraj z https://developer.paypal.com/webapps/de...
Če aplikacija prejema pakete je najbolj verjetno da iz nekega razloga ne odgovarja oz ne. odgovori pravilno. Preglej zadnji paket IPN postopka, ponavadi vsebuje opis napake oz "VERIFIED" če je vse v redu.
Sej prav to je to, ker servlet se pravzaprav ne odzove niti ga ne zažene. Kot da ne bi bil prav nastavljen IPN handler URL na tisti povezavi(vendar mislim da imam prav)...
Koda servleta, ki deluje kot IPN listener(PayPalListener.java):
package ipntest; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import com.paypal.core.ConfigManager; import com.paypal.core.LoggingManager; import com.paypal.ipn.IPNMessage; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Enumeration; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; /** * * @author Andraz Gregorcic<gregorcic.andraz@gmail.com> */ public class PayPalListener extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException{ List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("cmd", "_notify-validate")); for(Enumeration<String> e = request.getParameterNames(); e.hasMoreElements();){ String name = e.nextElement(); String value = request.getParameter(name); params.add(new BasicNameValuePair(name, value)); } DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("https://www.sandbox.paypal.com/cgi-bin/webscr"); post.setEntity(new UrlEncodedFormEntity(params)); String rc = getRC(client.execute(post)); System.out.println("Data: " + rc); } private String getRC(HttpResponse response){ InputStream is = null; try { is = response.getEntity().getContent(); } catch (IOException ex) { Logger.getLogger(PayPalListener.class.getName()).log(Level.SEVERE, null, ex); } catch (IllegalStateException ex) { Logger.getLogger(PayPalListener.class.getName()).log(Level.SEVERE, null, ex); } BufferedReader br = new BufferedReader(new InputStreamReader(is)); String resultat = ""; String line = null; try { while((line = br.readLine()) != null){ resultat += line; } } catch (IOException ex) { Logger.getLogger(PayPalListener.class.getName()).log(Level.SEVERE, null, ex); } return resultat; } }
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <servlet> <servlet-name>PayPalListener</servlet-name> <servlet-class>ipntest.PayPalListener</servlet-class> </servlet> <servlet-mapping> <servlet-name>PayPalListener</servlet-name> <url-pattern>/IPNListener</url-pattern> </servlet-mapping> <servlet> <servlet-name>Checkout</servlet-name> <servlet-class>com.paypal.dg.Checkout</servlet-class> </servlet> <servlet-mapping> <servlet-name>Checkout</servlet-name> <url-pattern>/checkout</url-pattern> </servlet-mapping> <servlet> <servlet-name>OrderConfirm</servlet-name> <servlet-class>com.paypal.dg.OrderConfirm</servlet-class> </servlet> <servlet-mapping> <servlet-name>OrderConfirm</servlet-name> <url-pattern>/orderconfirm</url-pattern> </servlet-mapping> <servlet> <servlet-name>Cancel</servlet-name> <servlet-class>com.paypal.dg.Cancel</servlet-class> </servlet> <servlet-mapping> <servlet-name>Cancel</servlet-name> <url-pattern>/cancel</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
Na linku, ki si ga dal pa vpisem:
http://domena:port/imeAplikacije/IPNListener
Po določenem času, ko se nič ne zgodi mi samo v simulatorju na tistem linku napiše da je potekla povezava.
Kot kaže ni še imel noben takšne težave?
Zgodovina sprememb…
- spremenil: draljo0007 ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 332636 (72639) | Macketina |
» | [JAVA] HTTPS clientOddelek: Programiranje | 3177 (1907) | peterv6i |
» | Printanje na papir java problemOddelek: Programiranje | 1184 (991) | javaMaster |
» | tomcat in datasourceOddelek: Programiranje | 1999 (1756) | infiniteLoop |
» | tomcat - problem z encodingomOddelek: Programiranje | 2346 (2260) | kopernik |