`
NobleBaron
  • 浏览: 43824 次
社区版块
存档分类
最新评论

paypal IPN返回

阅读更多

1.设定返回的地址

目标:登录paypal-->用户信息-->我的销售工具-->即时付款通知-->编辑并填写url

 

填写的URL必须为公网的,不能为局域网,要不就无法接收到paypal发送的信息

 


 2.编写IPN.jsp (此代码为官方代码)

//从 PayPal 出读取 POST 信息同时添加变量„cmd‟
	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");
		//此处的编码一定要和自己的网站编码一致,不然会出现乱码,paypal回复的通知为‘INVALID’
	}
	System.out.println("paypal传递过来的交易信息:" + str);
	//建议在此将接受到的信息 str 记录到日志文件中以确认是否收到 IPN 信息
	//将信息 POST 回给 PayPal 进行验证
	//设置 HTTP 的头信息
	//在 Sandbox 情况下,设置:
	URL u = new URL("https://www.sandbox.paypal.com/cgi-bin/webscr");
	//正式环境
	// 		URL u = new URL("https://www.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();
	//接受 PayPal 对 IPN 回发的回复信息
	BufferedReader in = new BufferedReader(new InputStreamReader(
			uc.getInputStream()));
	String res = in.readLine();
	in.close();

	//将 POST 信息分配给本地变量,可以根据您的需要添加
	//该付款明细所有变量可参考:
	//https://www.paypal.com/IntegrationCenter/ic_ipn-pdt-variable-reference.html
	String itemName = request.getParameter("item_name");//商品名
	String itemNumber = request.getParameter("item_number");//购买数量
	String paymentStatus = request.getParameter("payment_status");//交易状态
	String paymentDate = request.getParameter("payment_date");//交易时间
	String paymentAmount = request.getParameter("mc_gross");//交易钱数
	String paymentCurrency = request.getParameter("mc_currency");//货币种类
	String txnId = request.getParameter("txn_id");//交易id
	String receiverEmail = request.getParameter("receiver_email");//收款人email
	String payerEmail = request.getParameter("payer_email");//付款人email

	if (res == null || res == "")
		res = "0";
	//…
	//获取 PayPal 对回发信息的回复信息,判断刚才的通知是否为 PayPal 发出的
	if (res.equals("VERIFIED")) {
		//检查付款状态
		//检查 txn_id 是否已经处理过
		//检查 receiver_email 是否是您的 PayPal 账户中的 EMAIL 地址
		//检查付款金额和货币单位是否正确
		//处理其他数据,包括写数据库
		
	} else if (res.equals("INVALID")) {
		//非法信息,可以将此记录到您的日志文件中以备调查
	} else {
		//处理其他错误

	}

 注意:paypal回复的通知为'VERIFIED',也不一定代表此次交易成功,要判断是否交易成功通过下面语句,判断交易状态是否成功。

String paymentStatus = request.getParameter("payment_status");//交易状态 Completed 代表交易成功

 

  • 大小: 16.4 KB
分享到:
评论

相关推荐

    paypal ipn全攻略asp版.rar

    - 验证通常通过向PayPal发送一个确认请求,包含接收到的IPN信息,PayPal会返回一个确认消息来验证IPN的合法性。 - 如果验证成功,商家服务器可以据此更新订单状态、库存等信息,确保业务流程的顺利进行。 2. ASP...

    paypal Ipn

    - PayPal返回消息的原样副本,商家比较这个副本与收到的消息是否一致。 - 如果一致,说明消息有效;如果不一致,可能是PayPal重新发送,或者存在潜在的安全问题。 4. PHP实现PayPal IPN: - 使用PHP,可以创建一...

    paypal新的ipn返回接口 代码 加文档

    paypal新的ipn返回接口 代码 加文档 中文paypal支付 ipn 返回接口处理代码和文档

    php_paypal.zip_paypal ipn_paypal php

    PayPal IPN(Instant Payment Notification)是PayPal提供的一项重要服务,它允许商家通过自动化的后台处理来实时跟踪和确认交易状态。这个机制对于在线销售业务至关重要,因为它确保了无论用户是否在交易完成后返回...

    PayPal即时付款通知IPN-商户集成指南

    - **步骤3**:商户服务器收到IPN消息后,需将接收到的消息原样返回给PayPal进行验证,以防止欺诈行为。 - **步骤4**:PayPal接收到验证信息后,如果一切正常,则返回“VERIFIED”,否则返回“INVALID”。 - **步骤5*...

    ipn_pdt:非官方测试 PayPal IPN 和 PDT

    **PayPal IPN (Instant Payment Notification) 和 PDT (Payment Data Transfer)** PayPal IPN(即时支付通知)和PDT(支付数据传输)是两种关键的技术,用于在PayPal交易完成后与商家网站进行通信,确保交易状态的...

    Laravel开发-paypal-ipn-laravel

    如果PayPal返回的验证结果失败,或者无法更新订单状态,你应该记录这些错误并采取适当的措施,如发送邮件通知。 7. **测试**:在生产环境部署之前,务必进行充分的测试。可以使用PayPal的模拟IPN工具,或者创建测试...

    paypal 在线支付 api ipn pdt 指南大全 www.fywang.com/bbs

    前几天需要完成一个法国网站的paypal支付,我搜遍了相关的文档,有中文的,但相对来说较少,所以我参看了很多英文文档,终于把paypal的支付形式搞懂了,nvp,pdt,ipn的返回形式。 鉴于网上很多流传的代码缺少必要的...

    paypal_ipn_manager:将 PayPal IPN 通知缓冲到您的业务应用程序的 Elixir 服务器

    任务阅读 PayPal Sandbox 的 IPN HTTP 请求解析请求如下: 贝宝 ID 传输PayPal服务器或沙箱的标识启动一个异步进程来执行 SSL HTTP 确认返回传输 PayPal 框。 在启动过程中: 成功完成后,将请求转发到 Hedgeye 应用...

    Paypal的IPN和PDT变量对照表(中文版)PP_IPN_PDT_Guide_CHN

    ### PayPal的IPN和PDT变量对照表(中文版)详解 #### 一、付款数据传输(PDT) ##### 1.1 什么是PDT? PDT(Payment Data Transfer),即付款数据传输,是PayPal提供的一种服务,允许商家在其网站上安全地获取...

    paypal-octa-ipn:PayPal的IPN广播器,最多支持八个不同的IPN主机。 以WHMCS为例

    贝宝Octa IPN PayPal的IPN广播器,最多支持八个不同的IPN主机。 以WHMCS为例。情况贝宝提供IPN服务,该服务将回调您定义的IPN链接以确认付款。 这是一个幕后过程,客户不会注意到任何事情。 问题在于PayPal仅允许一...

    paypal支付接入php开发文档

    3. PayPal验证IPN数据的真实性,如果验证成功,会返回“VERIFIED”,此时你可以根据这些信息处理订单,例如更新库存或发货状态。 4. 如果返回“INVALID”,则说明可能存在欺诈行为,应谨慎处理这些交易。 在实际的...

    zencart单站paypal账号轮询

    - 错误处理:当PayPal返回错误代码时,需要有适当的错误处理机制,确保订单状态正确更新。 - 安全性:确保所有敏感信息,如API凭证,都安全存储,并在处理支付时使用HTTPS以保护用户数据。 - 事务处理:为了保持数据...

    Asp.net 支付 Paypal 成功案例,,

    4. IPN处理:一旦用户完成支付,PayPal会发送IPN消息到你的IPN验证页面。 5. 验证IPN:验证页面接收到POST数据后,会回发一个确认请求到PayPal,确保数据的有效性和完整性。 6. 更新订单状态:如果IPN消息验证成功,...

    OpenCart中PayPal Payments Standard(Paypal 标准支付方式)设置.

    - **IPN设置**:返回“My Selling Tools”页面,点击“Instant Payment Notification Preferences”(即时支付通知偏好设置),设置为“Enable”,并填写您的网站地址作为“Notification URL”。 #### 三、...

    paypal php支付demo

    3. **重定向用户**:创建支付成功后,PayPal会返回一个批准URL,这个URL用于将用户重定向到PayPal网站进行支付确认。用户可以在PayPal账户中查看商品详情并完成支付。 4. **用户确认支付**:在PayPal上,用户可以...

    ASP.NET(C#)__PayPal国际支付接口实现源码

    5. **处理支付结果**:用户在PayPal完成支付后,会被重定向回你在设置时指定的回调URL,这里需要接收并处理PayPal返回的IPN(Instant Payment Notification)消息,确认交易状态。这通常涉及到异步处理,你可以设置...

Global site tag (gtag.js) - Google Analytics