支付宝APP支付Java服务端:

公司项目要求对接支付宝进行支付功能,这边做出整理方便以后使用(支付宝的支付对接还是很简单的)。

1):去支付宝开放平台,-1.注册账号,2.创建应用 3.配置应用 4.开启支付APP支付 5签约,在支付宝开放平台中跟着步骤走就可以完成的操作,为对接做准备工作。

2):上面几部操作完成之后前往 管理中心 查看你申请的应用的 AppID (建议在本地新建一个文档保存这些有用信息 )

3):设置私钥和公钥,点击下载:之后根据支付宝平台提供教程获取自己的私钥和公钥,获取之后保存到上面图片的地方

配置应用公钥之后,支付宝会给你支付宝的公钥;

注:1.应用私钥:用于请求支付宝数据加签

2.应用公钥:用于提供给支付宝,让支付宝去拿着公钥获取你私钥加签后的数据;

3.支付宝公钥:是用来接收支付宝回调信息的

4):将这些有用信息保存到自己新建的文档中,方便开发使用。SDK下载,进入此页面找到javaSDK并下载保存。

之后将所需jar包引入项目  如图:。

一般是maven项目,可在网上百度:将jar引入本地maven仓库,并上传私服。这里就不做教程网上很多。

做完这些之后,就只剩下代码了,相当简单。

5):

//实例化客户端
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
model.setBody("我是测试数据");
model.setSubject("App支付测试Java");
model.setOutTradeNo(outtradeno);
model.setTimeoutExpress("30m");
model.setTotalAmount("0.01");
model.setProductCode("QUICK_MSECURITY_PAY");
request.setBizModel(model);
request.setNotifyUrl("商户外网可以访问的异步地址");
try {//这里和普通的接口调用不同,使用的是sdkExecuteAlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);System.out.println(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。} catch (AlipayApiException e) {e.printStackTrace();
}

在这里我说个注意点(本人踩的坑):上面的demo是支付宝提供的demo,数据为死数据,当运行它之后,直接把返回结果给前端他们是可以唤起支付的,如果想要换成自己的数据,不能从参数中传值取值,只能是前端返回id之后再自己去查完添加model中。

注:

APP_PRIVATE_KEY:为应用私钥。    ALIPAY_PUBLIC_KEY:为应用公钥。具体作用上面有解释。    CHARSET:可直接写成="UTF-8"

6):回调代码直接粘贴即可使用。

注:回调地址拼接完成之后需要添加到 2):步骤下的那张图里    添加授权回调地址。

 @RequestMapping(value="notify",produces = {"application/json;charset=UTF-8" })@ResponseBodypublic String AliNotify(HttpServletRequest request)  {Map requestParams = request.getParameterMap();/** 获取支付宝返回信息*/try {HashMap<String, String> params = new HashMap<String, String>();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] + ",";}if (name.equals("trade_status")) {System.out.println("交易状态为:"+valueStr);}params.put(name, valueStr);}logger.info("支付宝返回数据信息:"+params);//获取支付宝的通知返回参数//商户订单号String out_trade_no=new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");//支付宝交易号String trade_no=new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");//买家登录支付宝idString buyer_logon_id = new String(request.getParameter("buyer_logon_id").getBytes("ISO-8859-1"),"UTF-8");//交易时间String gmt_payment = new String(request.getParameter("gmt_payment").getBytes("ISO-8859-1"),"UTF-8");//交易金额String invoice_amount = new String(request.getParameter("invoice_amount").getBytes("ISO-8859-1"),"UTF-8");SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date date =null;try {date =  format.parse(gmt_payment);} catch (Exception e) {// TODO: handle exception}  // poublicKey为应用公钥换取的支付宝公钥// 验证签名boolean b = AlipaySignature.rsaCheckV1(params, alipaypublicKey, "UTF-8");//验证通过if (b) {//交易状态为成功if ("TRADE_SUCCESS".equals(params.get("trade_status"))) {/** 支付成功后的业务逻辑以后应该写在这里。* 将支付信息存根*/               return "SUCCESS";} }return "error:验证签名失败";} catch (Exception e) {// TODO: handle exceptionreturn "支付异常";}

到这里支付宝的支付集成,就算完成了。

支付宝APP支付Java服务端相关推荐

  1. 支付宝app支付功能-服务端的实现-python3版

    支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...

  2. 微信app支付功能-服务端的实现-python3版

    微信app支付功能-服务端的实现-python3版 一:需求说明 二:微信app支付处理流程 三:所需依赖 3.1 支付配置 四:接口开发 4.1 创建订单接口 4.2 微信异步回调接口 4.3 订单 ...

  3. Android安卓原生接入微信app支付PHP服务端

    Android安卓接入微信app支付PHP服务端 1.进入微信商户平台查看统一下单接口文档. 在查看完统一下单文档后,能够看到需要传递给微信"统一下单接口"地址的参数有哪些 统一下 ...

  4. app及Java服务端实现JT808协议的定义解析

    app及Java服务端实现JT808协议的定义解析,可以用做行车记录仪等的app. 网上很多帖子已经对JT808协议做了说明,我在这里就不做过多的赘述了. 最近接到一个项目是打车类的,所以对这协议做了 ...

  5. app支付宝支付java后台_支付宝app支付java后台流程demo

    支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...

  6. 支付宝app支付java后台流程demo

    支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...

  7. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写      一.流程步骤          1.执行流程            当手机端app(就是你公司开发的app) ...

  8. 微信支付java服务端开发(APP)

    我这边是针对微信商户支付功能开发.其他的未涉及到. 当你所有的准备工作准备好后:微信支付申请成功,api_key 配置好,等等一系列. 那么让我们进入java开发吧. 微信支付demo下载: http ...

  9. IOS IAP APP内支付 Java服务端代码

    场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purchase(iap)快速指南了解原理. 直接先上服务端测试通 ...

最新文章

  1. Oracle EBS R12 客户表结构
  2. C++实现图片的base64编码
  3. 贝聊运维自动化体系演化
  4. Java Servlet ServletContext
  5. sim800c GPRS模块的透传模式
  6. BEM —— 源自Yandex的CSS 命名方法论
  7. Halcon常用图像预处理算子总结
  8. UEFI开发之应用开发
  9. redis问题及答案
  10. win10快捷键整理记录
  11. esp8266 wifi库文件
  12. Cradle 从工程学角度预测血管和气管的流量并研究生物
  13. angluarjs+springmvc实现excel上传并解析,对个别字段进行非空校验,txt生成,txt生成的条件为某列必须为某值且只提供固定的几列发送到ftp...
  14. 面向对象程序设计php,php面向对象的程序设计
  15. Java实现数据库读写分离
  16. 阅读笔记——软件工程的瀑布、教堂和集市
  17. 信用卡分期利率陷阱——实际利率计算
  18. 有没有好奇过,用浏览器访问某个网站时,中间经历了什么,如何到达对方的?(初学版)
  19. [渝粤教育] 西南科技大学 钢筋砼与砌体结构 在线考试复习资料
  20. CSS实现背景图毛玻璃效果和如何保持图片上的文字显示正常

热门文章

  1. STM32_基础入门_新建工程文件—基于固件库
  2. uniapp报错 -4048
  3. 计算机科学与工程一直火,薪火相传(三)|王采玉:一个渺小如蝼蚁的大学生的成长历程...
  4. js控制元素显示与否JS控制HTML元素的显示和隐藏
  5. leetcode844,难度easy
  6. 全面领先!小i机器人再获2018年度最佳智能解决方案奖
  7. ROS订阅tf并转换坐标
  8. C/C++ 数组的初始化
  9. 但行好事,去他妈的前程
  10. 示波器读取SCI串口数据