`
jsczxy2
  • 浏览: 1277535 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

paypal IPN返回

阅读更多

1.设定返回的地址

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

 

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

 


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

Java代码  收藏代码
  1. //从 PayPal 出读取 POST 信息同时添加变量„cmd‟  
  2.     Enumeration en = request.getParameterNames();  
  3.     String str = "cmd=_notify-validate";  
  4.     while (en.hasMoreElements()) {  
  5.         String paramName = (String) en.nextElement();  
  6.         String paramValue = request.getParameter(paramName);  
  7.         str = str + "&" + paramName + "="  
  8.                 + URLEncoder.encode(paramValue, "utf-8");  
  9.         //此处的编码一定要和自己的网站编码一致,不然会出现乱码,paypal回复的通知为‘INVALID’  
  10.     }  
  11.     System.out.println("paypal传递过来的交易信息:" + str);  
  12.     //建议在此将接受到的信息 str 记录到日志文件中以确认是否收到 IPN 信息  
  13.     //将信息 POST 回给 PayPal 进行验证  
  14.     //设置 HTTP 的头信息  
  15.     //在 Sandbox 情况下,设置:  
  16.     URL u = new URL("https://www.sandbox.paypal.com/cgi-bin/webscr");  
  17.     //正式环境  
  18.     //      URL u = new URL("https://www.paypal.com/cgi-bin/webscr");  
  19.     URLConnection uc = u.openConnection();  
  20.     uc.setDoOutput(true);  
  21.     uc.setRequestProperty("Content-Type",  
  22.             "application/x-www-form-urlencoded");  
  23.     PrintWriter pw = new PrintWriter(uc.getOutputStream());  
  24.     pw.println(str);  
  25.     pw.close();  
  26.     //接受 PayPal 对 IPN 回发的回复信息  
  27.     BufferedReader in = new BufferedReader(new InputStreamReader(  
  28.             uc.getInputStream()));  
  29.     String res = in.readLine();  
  30.     in.close();  
  31.   
  32.     //将 POST 信息分配给本地变量,可以根据您的需要添加  
  33.     //该付款明细所有变量可参考:  
  34.     //https://www.paypal.com/IntegrationCenter/ic_ipn-pdt-variable-reference.html  
  35.     String itemName = request.getParameter("item_name");//商品名  
  36.     String itemNumber = request.getParameter("item_number");//购买数量  
  37.     String paymentStatus = request.getParameter("payment_status");//交易状态  
  38.     String paymentDate = request.getParameter("payment_date");//交易时间  
  39.     String paymentAmount = request.getParameter("mc_gross");//交易钱数  
  40.     String paymentCurrency = request.getParameter("mc_currency");//货币种类  
  41.     String txnId = request.getParameter("txn_id");//交易id  
  42.     String receiverEmail = request.getParameter("receiver_email");//收款人email  
  43.     String payerEmail = request.getParameter("payer_email");//付款人email  
  44.   
  45.     if (res == null || res == "")  
  46.         res = "0";  
  47.     //…  
  48.     //获取 PayPal 对回发信息的回复信息,判断刚才的通知是否为 PayPal 发出的  
  49.     if (res.equals("VERIFIED")) {  
  50.         //检查付款状态  
  51.         //检查 txn_id 是否已经处理过  
  52.         //检查 receiver_email 是否是您的 PayPal 账户中的 EMAIL 地址  
  53.         //检查付款金额和货币单位是否正确  
  54.         //处理其他数据,包括写数据库  
  55.           
  56.     } else if (res.equals("INVALID")) {  
  57.         //非法信息,可以将此记录到您的日志文件中以备调查  
  58.     } else {  
  59.         //处理其他错误  
  60.   
  61.     }  

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

Java代码  收藏代码
  1. String paymentStatus = request.getParameter("payment_status");//交易状态 Completed 代表交易成功  
分享到:
评论

相关推荐

    YOLO算法-城市电杆数据集-496张图像带标签-电杆.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (177406840)JAVA图书管理系统毕业设计(源代码+论文).rar

    JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代码+论文) JAVA图书管理系统毕业设计(源代

    (35734838)信号与系统实验一实验报告

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    YOLO算法-椅子检测故障数据集-300张图像带标签.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    基于小程序的新冠抗原自测平台小程序源代码(java+小程序+mysql+LW).zip

    系统可以提供信息显示和相应服务,其管理新冠抗原自测平台小程序信息,查看新冠抗原自测平台小程序信息,管理新冠抗原自测平台小程序。 项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 部署容器:tomcat7 小程序开发工具:hbuildx/微信开发者工具

    YOLO算法-俯视视角草原绵羊检测数据集-4133张图像带标签-羊.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    (171674830)PYQT5+openCV项目实战:微循环仪图片、视频记录和人工对比软件源码

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    新建 文本文档.docx

    新建 文本文档.docx

    hw06.zip

    hw06

    3. Kafka入门-安装与基本命令

    3. Kafka入门-安装与基本命令

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    燃气管道施工资质和特种设备安装改造维修委托函.docx

    The state of AI 2024.pdf

    AI大模型研究相关报告

    lab02.zip

    lab02

    Unity视频插件AVPro的Win端2.2.3

    仅供学习使用,其他用途请购买正版资源AVPro Video Core Windows Edition 2.2.3 亲测可用的视频播放插件,能丝滑播放透明视频等.

    建设工程消防验收现场指导意见表.docx

    建设工程消防验收现场指导意见表.docx

    MVIMG_20241222_194113.jpg

    MVIMG_20241222_194113.jpg

    五相电机双闭环矢量控制模型-采用邻近四矢量SVPWM-MATLAB-Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成

    五相电机双闭环矢量控制模型_采用邻近四矢量SVPWM_MATLAB_Simulink仿真模型包括: (1)原理说明文档(重要):包括扇区判断、矢量作用时间计算、矢量作用顺序及切时间计算、PWM波的生成; (2)输出部分仿真波形及仿真说明文档; (3)完整版仿真模型:包括邻近四矢量SVPWM模型和完整双闭环矢量控制Simulink模型; 资料介绍过程十分详细,零基础手把手教学,资料已经写的很清楚

    YOLO算法-锡罐-牙罐-盖子打开数据集-179张图像带标签-锡罐-牙罐-盖子打开.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    java毕设项目之ssm基于JSP的乡镇自来水收费系统+jsp(完整前后端+说明文档+mysql+lw).zip

    项目包含完整前后端源码和数据库文件 环境说明: 开发语言:Java 框架:ssm,mybatis JDK版本:JDK1.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/idea Maven包:Maven3.3 服务器:tomcat7

Global site tag (gtag.js) - Google Analytics