java 開發paypal API

實現 paypal IPN 的注意事項:
 

   1. 測試服務器必須是外網,端口最好是80端口(我試過很多端口,像8080什麼的等,但是paypal那邊總是不發送IPN信息過來,一直不知道是怎麼回事,最後改成80端口後就OK了。)。
    2.無論是在sandbox還是在真實環境裏面,貨幣符號不要用CNY ,因爲現在PAYPAL還沒有收取RMB的功能,國內的對於RMB有貝寶中國 ,但是貝寶中國和paypal是一個不同的業務,雖然是同一個公司,但是暫時不能互相交互數據。
     貝寶中國和paypal的設置區別:
         https://www.paypal-biz.com/paypalcollege/beginner/gettoknow/paypalintro/2468.html
         
    關於paypal API 參考資料:
    http://www.paypal-biz.com/development/documentation/PayPal_IPN&PDT_Guide_V1.0.pdf
    paypal代碼生成:
    https://www.paypaltech.com/sg2/
       
    JAVA 的代碼生成不了,JAVA代碼爲:
   
    Enumeration en = request.getParameterNames();
                 String str = "cmd=_notify-validate";
           while(en.hasMoreElements()){
                 String paramName = (String)en.nextElement();
                 String paramValue = request.getParameter(paramName);  
                 str = str + "&" + paramName + "=" + URLEncoder.encode(paramValue,"utf-8");
                                         }
           URL u = new URL("https://www.sandbox.paypal.com/cgi-bin/webscr");
                 URLConnection uc = u.openConnection();    
                 uc.setDoOutput(true);
                 uc.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
           PrintWriter pw = new PrintWriter(uc.getOutputStream());
                    pw.println(str);  
                    pw.close();
           BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream()));  
                    String res = in.readLine();
           Timestamp nowtime=new Timestamp(System.currentTimeMillis());
                    in.close();
                 
                 
         表單數據:
                 
                 <form name="myIpnform"  action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" >
                          <input name="add" value="1" type="hidden" />
                          <input name="cmd" value="_xclick" type="hidden" />
                          <input name="business" value="[email protected]" type="hidden" />     
                          <input name="item_name" value="GPSu2-Navigation Bundle" type="hidden" />   
                          <input name="item_number" value="001" type="hidden" />
                          <input name="amount" value="1" type="hidden" />                            
                          <input name="no_shipping" value="2" type="hidden" />
                          <input name="no_note" value="1" type="hidden" />
                          <input name="currency_code" value="USD" type="hidden" />
                          <input name="mc_currency" value="USD" type="hidden" />
                          <input name="lc" value="US" type="hidden" />
                          <input name="bn" value="PP-ShopCartBF" type="hidden" />
                          <input type="hidden" name="return" value="http:/phone/index"/>
                          <input type="hidden" name="notify_url" value="http:/phone/IPN?gpsid=<s:property value='#vi.gpsid' />"/>
                          <input type="hidden" value="http:/phone" name="cancel_return" />
                </form> 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章