1、!DOCTYPE HTML PUBLIC -/W3C/DTD HTML 4.01 Transitional/EN/www.w3.org/TR/html4/loose.dtdhtmlheadmeta http-equiv=Content-Type content= charset=UTF-8titlegoto paypal/headbody bgcolor=#000000 leftmargin=0 topmargin= marginwidth= marginheight= item_nameorder information-这里填写客户订单的一些相关信息,当客户连到paypal网站付款的时候将
2、看到这些信息-amount220.00-订单的总金额信息-currency_codeUSD-订单总金额对应的货币类型 ,客户可以用其他币种来付款,比如这里订单币种是美元USD,客户可以用欧元EUR来付款,由paypal根据当前汇率自动实现币种之间的换算-on0customerId- 自定义的参数1 -os0stephen- 对应上面自定义参数1对应的值 -on1address- 自定义的参数2 -os1shanghai china- 对应上面自定义参数2对应的值 -notify_url 诉paypal付款的通信url,即当客户付款后调用这个url通知系统-input name=Paypal t
3、ype=buttonGo to Paypal onclick=javaScript:this.form.submit();/td/form/body/html在生成上面的paypal表单时,其中的cmd,action,business,amount,currency_code,notify_url参数设置绝对不能出错,cmd和action指定paypaly接口类型,business出错,你将收不到客户的付款,amount与currency_code关系到订单的金额,notify_url是系统与paypal的付款通知接口url。当客户下单后看到上面的页面后,就可以通过设置的按钮Go to Pay
4、pal连接到网站,然后登录并进行付款。(2)paypay将付款信息返回给系统 当客户付款后,paypal就会自动调用上面表单提供的notify_url,下面是一个notifyurl.jsp的一个例子:% page import=com.soft4j.NotifyUrlMgr% String ret = NotifyUrlMgr.insert(request); if(ret=null)out.print(200 OK);elseout.print(fail%String ret = NotifyUrlMgr.insert(request);if(ret=null)out.print(如果确认收
5、到paypal发来的客户付款信息,则返回,这样子paypal就知道系统已经收到信息了;否则返回,这样paypal会过一段时间后再次发来。其实,只有当paypal收 到的返回信息后才会停止发送付款信息,否则会自动的每隔一段时间就调用上面 的notify_url通信接口。(3)系统处理paypay发来的付款信息 Java代码 /* * Created on 2005-6-12 * Author stephen * Email zhoujianqiang AT gmail DOT com * CopyRight(C)2005-2008 , All rights reserved. */package
6、 com.soft4j;import java.sql.Connection;import java.sql.SQLException;import java.util.Enumeration;import java.util.Vector;import javax.servlet.http.HttpServletRequest;/* * paypal付款通知接口. * * author stephen * version 1.0.0 public final class NotifyUrlMgr public static String insert(HttpServletRequest h
7、ttpRequest) /定义变量和进行必要的初始化工作 Enumeration parameterNames = null; String parameterName = null; String parameterValue = null; int count = 0; Vector params = null; Vector vParameterName = new Vector(); Vector vParameterValue = new Vector(); /判断paypal付款账户是否正确 String business = httpRequest.getParameter( i
8、f( !.equals(business) ) System.out.println(gu:Wrong receive paypal email:+business); return null; try String orderId = httpRequest.getParameter(order_id/订单号 if(orderId=null|.equals(orderId) orderId=-1; parameterNames = httpRequest.getParameterNames(); boolean isPrint = false; while (parameterNames.h
9、asMoreElements() /循环收取paypal发来的所有参数信息 parameterName = (String) parameterNames.nextElement(); parameterValue = httpRequest.getParameter(parameterName); if(parameterValue=null) parameterValue= vParameterName.add(parameterName); vParameterValue.add(parameterValue); count+; /这里添加对收到信息的处理:一般是将这些信息存入数据库,然
10、后对客户的订单进行处理. catch (Exception e) return e.toString(); finally /* Created on 2005-6-12* Author stephen* Email zhoujianqiang AT gmail DOT com* CopyRight(C)2005-2008 , All rights reserved.*/* paypal付款通知接口.* author stephen* version 1.0.0public final class NotifyUrlMgr public static String insert(HttpSer
11、vletRequest httpRequest) /定义变量和进行必要的初始化工作 /判断paypal付款账户是否正确.equals(business) ) try /订单号 while (parameterNames.hasMoreElements() /循环收取paypal发来的所有参数信息一般是将这些信息存入数据库,然后对客户的订单进行处理. catch (Exception e) finally /这样系统可以自动对客户订单的付款情况进行跟踪,更快捷的进行订单处理。附录:1 paypay允许的币种 AUD Australian Dollar CAD Canadian Dollar CH
12、F Swiss Franc CZK Czech Koruna DKK Danish Krone EUR Euro GBP Pound Sterling HKD Hong Kong Dollar HUF Hungarian Forint JPY Japanese Yen NOK Norwegian Krone NZD New Zealand Dollar PLN Polish Zloty SEK Swedish Krona SGD Singapore Dollar USD U.S. Dollar 2 paypal付款信息的参数含义:3 paypal提供的开发api的pdf文档 PP_OrderManagement_IntegrationGuide.pdf.zip 在附件中可以下载 4 paypal提交付款所支持的参数及其含义(也就是你提交给paypal中的那个Form表单中需要设置的参数) 5 paypal显示页面的语言设置(也就是打开paypal网站的语言)。需要用参数locale.x进行设置,但这个参数在paypal提供的参数表(参见上面4)中没有的。.locale.x=zh_HK 繁体中文 locale.x=en_GB 英文 以下网上收集,作为参考:form target= method=
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1