java实现网站paypal支付功能并且异步修改订单的状态:步骤如下

第一步:去paypal的官网https://www.paypal.com注册一个个人账号,在创建沙箱测试账号时需要用到

第二步:paypal提供了模拟的测试环境,我们需要在https://www.sandbox.paypal.com/去创建一个虚拟卖家账号和买家账号

(必须用第一步注册的真实账号才能登录进去,沙箱账号是登录不进去的)

第三步:登录成功后创建卖家、买家账号,如果不知道在哪创建账号可以直接点击这个链接https://developer.paypal.com/developer/accounts/

如下图:

上面几个就是我创建的卖家和买家测试账号,如果创建不了的可以私信我

第四步:编写java代码,把必要的数据传给paypal就行,比如金额、产品描述等等

第五步:编写异步回调路径的java代码

/** * pay pal支付返回信息 * @param request * @param response */@RequestMapping("payPal/recharge")public void payPal(HttpServletRequest request,HttpServletResponse response,HttpSession session) throws IOException, ParseException { String itemNumber=""; Enumeration en = request.getParameterNames();while (en.hasMoreElements()) { String paramName = (String) en.nextElement(); String paramValue = request.getParameter(paramName);if(paramName.equals("item_number")){ itemNumber=paramValue; } } String id[]=itemNumber.split(","); PrintWriter out=response.getWriter(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String sDate = sdf.format(new Date()); Date date = sdf.parse(sDate); String str1 = request.getParameter("tx");/*正式环境下 String str2 = "&at=sTvmKEM1YR2EmQXW3VyBrqYWiX-8_wr0Sj5w2DQ5uqGoakHYOCKcFsaAAU4"; */ String str2 = "&at=VmjfBuVl1vbSC6bMV7xvROqisIsrMpKftSx_bLbAnNr-UO2JsLnAR2wfzK8"; String str = "?tx=" + str1 + "&cmd=_notify-synch" + str2;/* String str = "?tx=" + str1 + "&cmd=_notify-validate" + str2; */ /* 正式环境下 String payPalUrl = "https://www.paypal.com/cgi-bin/webscr"; */ String payPalUrl = "https://www.sandbox.paypal.com/cgi-bin/webscr"; payPalUrl = payPalUrl + str; URL u = new URL(payPalUrl); 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 line = ""; String txn_id = ""; //paypal的号码 String item_name = "";//本地订单号 String contact_phone = "";int i = 0; String res = ""; String msg = "";while ((line = in.readLine()) != null) { i = i + 1;if (i == 1) { res = line; }if (res.equals("SUCCESS")) {if (line.indexOf("txn_id=") != -1) { txn_id = line.replace("txn_id=", ""); } else if (line.indexOf("item_name=") != -1) { item_name = line.replace("item_name=", ""); } else if (line.indexOf("contact_phone=") != -1) { contact_phone = line.replace("contact_phone=", ""); } } }if (!txn_id.equals("") && !item_name.equals("")) { UserRecord userRecord=userRecordService.findById(Integer.parseInt(id[1])); userRecord.setCommitDate(date); userRecord.setHandler(id[2]); userRecord.setState(0);userRecordService.updateUserRecord(userRecord);//修改数据库的字段信息 msg = "Pay for success! Please wait for delivery! Your Order Number: " + txn_id + " !"; } else { msg = "Sorry ! Your operating error! Please contact website administrator !!"; } out.print("<script>alert('" + msg + "');location.href='" + request.getContextPath() + "/goto/back'</script>");//支付完毕返回 用户信息页 !}

注意)本地是无法进行异步调试,要在外网才行,也可以使用nat123将本地映射到外网。另外,如果异步返回时接收不到相关的数据,有可能是你没开通PDT数据传输功能,在网站付款习惯里面可以设定,如下图:

原文博客的链接地址:https://cnblogs.com/qzf/


java实现网站paypal支付功能并且异步修改订单的状态相关推荐

  1. 网站接入支付功能完整教程

    大家好,今天给大家带来网站接入支付功能的演示.本例用支付宝演示. 自己开发的网站,需要对接支付宝支付功能需要的几个条件. 1.支付宝开放平台注册账号(支持个人账号),开通自己应用功能权限(小程序.网页 ...

  2. java对接支付宝实现支付功能

    ** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...

  3. luffy-16/订单表设计,立即付款接口/前端,支付成功get回调用户展示,支付成功post回调修改订单状态

    这里写目录标题 一.昨日回顾 二.今日内容 1.订单表设计 2.立即付款接口(一堆校验,登录后) 2.1视图类 2.2序列化类 2.3自定义异常类 2.4配置文件 2.5路由 3.立即付款前端 4.支 ...

  4. uni-app:实现PayPal支付功能

    一.相关文档或网址 1.uni-app官方文档地址:开通 | uni-app官网 2.paypal开发者中心:Applications - PayPal Developer 二.开发流程 1.开发前配 ...

  5. java微信web支付开发_微信支付java开发详细第三方支付功能开发之支付宝web端支...

    这段时间把支付基本搞完了,因为做的过程中遇到许多问题,特地记录下来,同时方便其他java coder,废话少说,下面开始. 整体思路:在后台,根据参数创建支付宝客户端AlipayClient,发送参数 ...

  6. java开发NATIVE微信支付功能(下单)

    ** 谈NATIVE微信支付流程以及遇到坑 初次接触微信支付,内心万马奔腾,产品,客户一直催,微信支付文档也不知道怎么看,记录一下微信支付开发步骤,,,,,先解释微信支付流程!其他文档会给加密,解密, ...

  7. java 中调用支付宝支付功能的接口

    支付宝接口: 申请支付宝接口服务:  1.https://fuwu.alipay.com/platform/doc.htm#c11    Java-JDK 1.5 SDK 2.https://csha ...

  8. ShopEx customSchema 定制可以根据客户的需求对网站进行相应功能的添加修改或者删除

    站内锚文本制作 1.修改config.php,在文件末尾加入以下内容 define('CUSTOM_CORE_DIR',BASE_DIR . '/custom'); 2.增加custom文件夹(与co ...

  9. 网站添加微信支付功能(小白填坑)

    本周的工作安排就是在网站添加支付功能,包括支付宝.微信.财付通等,今天这篇文章先说一下微信支付吧,支付宝的太容易了基本看一下都会了 1.首先准备工作,开通了支付功能的账号,具体怎么开通的我也不熟悉因为 ...

  10. 境外 android 支付功能,Paypal向Android开发者提供应用内部支付功能

    腾讯科技讯(编译/中涛)北京时间5月20日消息,据国外媒体报道,eBay旗下网络支付平台Paypal周三宣布,已面向Android手机平台的外部开发者发布了"移动支付库"(Mobi ...

最新文章

  1. 整理Silverlight资源列表(四)——Silverlight案例补充
  2. Intel不争气,7nm再延后两年将彻底落败
  3. 内核地址空间和用户地址空间
  4. python生成gif【简明教程】
  5. java网络编程udp_java网络编程(UDP详解)
  6. Android获取状态栏、标题栏、屏幕高度
  7. 关于“using namespace std”
  8. Java中的I/O流全汇总,所有的I/O就一张图
  9. X 分钟速成 Python
  10. 字节流与字符流的区别
  11. freenas搭建nas及san网络存储详解
  12. jupyter notebook 更改工作环境和浏览器
  13. 使用Everything清理垃圾文件
  14. 智源大会人工智能的认知神经基础论坛精华观点 | 从「第一性原理」到大脑仿真...
  15. ios 开发 怎样在项目中使用除系统外的字体
  16. 7-11 输出大写英文字母 (15 分)
  17. 你说的H5到底是什么,跟Html有什么关系,能吃吗
  18. OSS产品Bucket分级的使用场景及注意事项
  19. 杭州云栖·2050大会-团聚召集人手册
  20. C 练习4-7 求e的近似值 (15 分)

热门文章

  1. 【移动应用趋势】2022 年值得关注的 15 大移动应用开发趋势
  2. 基、维数和坐标 过渡矩阵与坐标变换
  3. 基于ETest的飞控系统半实物实时仿真
  4. 11010011计算机二进制,二进制运算及转换(课件)
  5. linux yasm编译,linux安装yasm报错
  6. phpspider 的简单使用
  7. 【去水印】最简单的百度图片去水印
  8. 2015 年度新增开源软件排名 TOP100
  9. 区块链四:共识机制——PBFT算法深入讲解
  10. 个人信息安全规范----8、组织的个人信息安全管理要求