敲重点
首先理解为什么需要支付回调顾名思义:当我们的系统向支付宝发起了订单支付的请求之后,就需要支付宝告诉我们的系统支付结果,所以就需要回调了。
来看看官方的解释吧:

对于App支付产生的交易,支付宝会根据原始支付 API 中传入的异步通知地址 notify_url,通过 POST 请求的形式将支付结果作为参数通知到商户系统。

notify_url: 这个参数就是我们在上一篇文章中说到的支付回调地址的参数(也就是我们系统里面的一个接口地址),我们需要在提交支付的时候就把这个地址告诉支付宝,这样才能在支付完成的同时将结果反馈到我们系统中

异步通知的参数:……
参数太多了,我就不一一罗列了,要不自己自行查看一下吧**……**点击这样查看

上接口:

@RequestMapping(value = "/callback", method = RequestMethod.POST)@ResponseBodypublic String callback(HttpServletRequest request, HttpServletResponse response) {// 1.下面这段代码至验签的地方,代码是通用的,可以直接用Map<String, String> params = new HashMap<String, String>();Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);String valueStr = "";for (int i = 0; i < values.length; i++) {valueStr = (i == values.length - 1) ? valueStr + values[i]: valueStr + values[i] + ",";}//乱码解决,这段代码在出现乱码时使用。 //valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8"); params.put(name, valueStr);}//2. 获取自己所需的参数String trade_no = request.getParameter("trade_no");           //支付宝交易号String out_trade_no = request.getParameter("out_trade_no");    //商户订单号String orderType = request.getParameter("body");               //订单内容String tradeStatus = request.getParameter("trade_status");     //交易状态//3. 对支付宝返回的数据验证,确定是支付宝返回的能和自己系统的数据对应起来b oolean flag   = false;//调用SDK验证签名- 参数记得修改和自己的对应起来(切记alipaypublickey是支付宝的公钥,去open.alipay.com对应应用下查看)try {flag  =  AlipaySignature.rsaCheckV1( params, alipaypublicKey , charset , "RSA2" );}catch (AlipayApiException e) {e.printStackTrace();}//4.对验签结果进行处理if (flag) {    //验签通过if (tradeStatus.equals("TRADE_SUCCESS")) {    try {//在这里处理支付成功的订单: 修改交易表状态,支付成功} catch (SysException e) {logger.error("支付失败,错误信息:" + e.getInfo());return "fail";}return "success";} else {return "fail";}} else {  //验签不通过System.err.println("验签失败");return "fail";}       }

Java订单接入支付宝二 支付回调相关推荐

  1. 支付 | Java个人接入支付宝当面付(免签约,超详细步骤)

    文章目录 1. 前言 2. 当面付产品介绍 2.1 场景描述2种场景 2.2 申请条件 2.3 费率 2.4 产品签约管理 3. 实现的效果 3.1 基于当面付 - 扫码支付 实现的[电脑端web]支 ...

  2. Android接入支付宝实现支付功能

    Android接入支付宝实现支付功能 我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上, ...

  3. H5网站接入支付宝的支付接口

    写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop. ...

  4. WooCommerce接入支付宝微信支付

    WooCommerce接入支付宝微信支付 前言 安装支付宝插件(方法一) 安装配置 获取注册信息 安装支付宝插件(方法二) 安装微信支付插件 下载及安装 获取微信公众号APPID,微信支付密钥 获取微 ...

  5. ios支付宝支付失败不回调_iOS 支付宝网页支付回调问题

    今天遇到支付宝网页支付回调的问题 当手机里面没有支付宝客户端的时候,会自动调起网页支付页面,但是我发现我原来写在AppDelegate.m里面的代码没走. 造成的结果是,不管是支付成功,还是退出支付, ...

  6. 支付宝APP支付回调问题

    支付宝APP支付回调问题 这里必须要打印 success 七个字符,不然会一直回调.

  7. Java web集成支付宝电脑支付接口(沙箱环境)

    前言 这篇博客主要介绍如何在Java web项目中集成支付宝的电脑支付接口(会稍微介绍一下服务器集成APP支付接口).目前支付宝接口更新很快,在博主查找资料的时候,很多都是即时到账接口,APP支付则是 ...

  8. Android实现支付宝AR功能,Android接入支付宝实现支付功能实例

    我本来是想直接讲Android支付这一块的,包括支付宝,微信,其他第三方整合支付等,但是微信开放平台他对我的账号做了限制,所有我今天就先把重心放在支付宝的支付上,也算是写得尽可能详细些吧,毕竟是第三方 ...

  9. 小程序 - 接入支付宝预授权支付 笔记

    文章目录 支付宝预授权 & 预授权转支付 BUG 问题1:订单参数异常,请重新下单后再发起付款 问题2:返回的response如何转成json格式 普通支付 关于回调 支付宝预授权 & ...

  10. 个人怎么接入支付宝微信支付?

    如今支付接口被广泛运用到各行各业,可以说交易即离不开支付.但是很多人对申请支付宝微信免签约支付感到头疼,一边难以达到大支付平台的接口资质要求,但是又有强烈的支付安全需求. 作为个人开发者,想为辛苦开发 ...

最新文章

  1. 访问数据库_如何访问虚拟主机中的数据库
  2. 怎么查看本地电脑是否安装了Git
  3. 怎么做逆向geocoding?
  4. Python爬虫--- 1.2 BS4库的安装与使用
  5. RDMBorderedButton
  6. Centos7.6安装mysql8.0.11
  7. JAVA格式化输出字串
  8. 无聊的时候去火箭队官网调戏客服
  9. [转]反射(用反射调用任意.net库中的方法)
  10. 计算机病毒445端口,关闭135 445端口_445端口关闭方法_怎么防止电脑中勒索病毒
  11. JavaScript调用pc和手机摄像头
  12. 陈年咖啡豆是什么?陈年咖啡能喝吗?陈年咖啡有什么特别的?
  13. whale 帷幄:crm客户管理营销系统全称是什么
  14. Pika使用入门(一)【介绍】
  15. 解决电脑扩展屏幕模糊的小技巧
  16. VLOOKUP函数反向查找(需要用IF函数把数据源倒置一下)
  17. js桌面应用 Linux,从 1 到完美,用 js 和 electron 写一个桌面应用
  18. React入门(上)
  19. Vue中的 key 的作用是什么?
  20. 了解情感分析中的NLP技术么?

热门文章

  1. cholesky分解java代码_cholesky分解的实现
  2. JAVA计算机毕业设计大学生旅游拼团网站Mybatis+源码+数据库+lw文档+系统+调试部署
  3. 古体字与简体字对照表_简体字与繁体字对照表汇总
  4. 阿里云短信接口对接(java版)
  5. 开放集识别的最新进展总结(源于Recent Advances in Open Set Recognition: A Survey)
  6. TNF1EGS4 OSN1800全新四路交换式千兆以太网处理板
  7. z2屏幕坏如何从计算机导出数据,闪回收-手机屏幕坏了如何导出数据?手机屏幕坏了怎么用电脑控制?...
  8. svn图标不显示的问题
  9. Dorado7 DataGrid变颜色 自定义渲染
  10. 信用评分卡模型python_信用评分卡模型在Python中实践(下)