之前做开发过程中,没有接触过支付相关的功能,最近做了一个支付相关功能的开发,包括支付宝和微信支付,为了避免以后忘记相关的流程,记录一下这次的开发经验,这里先介绍一下支付宝相关的开发。

首先在进行java开发功能之前,先要在支付宝开放平台创建应用或者绑定应用,然后配置密钥,开放签约功能,具体流程,参考支付宝文档中心,附上链接

开放能力 | API支付宝文档中心https://opendocs.alipay.com/apis/01da3s

网页&移动应用学习路径 - 支付宝文档中心 (alipay.com)https://opendocs.alipay.com/apis/01ddgu应用创建完成,相关配置生成并且签约功能审核通过之后, 才可以发起支付,这里不再多说,先看一下支付宝支付的整体流程图:

支付宝整体的流程为, 商户客户端向商户服务端发起请求,获取签名后的订单信息,获取到信息之后调用支付宝支付接口完成支付请求,支付完成后商户客户端会收到支付结果,同时也会给商户服务端配置的异步通知地址发送一份支付结果,获取到异步结果之后,需要给支付宝接受响应的回应,将服务端异步获取的信息记录到数据库中,并提供给客户端,具体以哪个结果为准,可以根据各自的需要,一般来说,可以将服务端异步获取到的信息,作为支付是否成功的标准。

首先需要客户端发起支付请求,获取到相关的支付配置,比如支付金额,是否是签约订单,支付文案等相关信息,然后将这些信息传给服务端,服务端获取到这些信息,创建订单,需要的参数如下

app支付接口2.0 - 支付宝文档中心 (alipay.com)https://opendocs.alipay.com/apis/02e7gq?scene=20

//客戶端唤起APP 公参
Map<String, String> publicParameter = new HashMap<>();
//支付宝分配给开发者的应用ID
publicParameter.put("app_id", "XXXXXXXXX");
publicParameter.put("charset", "UTF-8");
//商户生成签名字符串所使用的签名算法类型
publicParameter.put("sign_type", "RSA");// 签名方式RSA/RSA2
//接口名称
publicParameter.put("method", "alipay.trade.app.pay");//支付宝交易接口
//发送请求的时间
publicParameter.put("timestamp",DateUtil.getDateByDatePattern(DateUtil.LONG_DATE_FORMAT));
publicParameter.put("version", "1.0");
publicParameter.put("format", "JSON");
publicParameter.put("notify_url", callbackUrl);// 回调地址
Map<String, String> privateParameter = new HashMap<>();
//订单号
privateParameter.put("out_trade_no", tradeNo);//外部交易订单号
privateParameter.put("product_code", "QUICK_MSECURITY_PAY");//销售产品码,可根据实际修改
//支付价格
privateParameter.put("total_amount", amount + "");
//绝对超时时间
privateParameter.put("time_expire", DateUtil.addMinute("", 10, "yyyy-MM-dd HH:mm"));
//商品描述
privateParameter.put("body", body);
//合作商ID
privateParameter.put("seller_id", "XXXXXXXX");
//附属字段
publicParameter.put("biz_content", JsonUtil.obj2Json(privateParameter));
//参数字符串化
String linkString = FreePayUtils.buildOrderParam(publicParameter);
//签名
String signstr = FreePayUtils.getSign(publicParameter, "XXXXXXX"(阿里私钥),false);Map<String, String> callAliPay = new HashMap<>();
callAliPay.put("callAliPayUrl", linkString + "&" + signstr);

参考支付宝的签名文档:数据签名 - 支付宝文档中心 (alipay.com)https://opendocs.alipay.com/common/02kf5q

签名信息生成之后,将这些信息返回给客户端,callAliPay.put("callAliPayUrl", linkString + "&" + signstr);客户端拿到这些信息后,调用支付宝的SDK请求支付,支付成功后,支付宝会将支付结果同步发送给客户端,同时将信息发送到callbackUrl回调地址,数据验签校验之后,获取相应的数据,更新订单信息即可。

Java开发支付宝支付功能相关推荐

  1. Java教程:如何申请Java开发支付宝支付中的必要参数(AppID,支付宝公钥,应用私钥)

    今天我们要说的是,如何去申请支付宝付款开发当中需要的一些必要参数,比如AppID,支付宝公钥,应用私钥 第一步: 首先我们打开支付宝开放平台链接:https://open.alipay.com/pla ...

  2. 非常详细 !!!支付宝支付功能开发配置Demo演示

    1.搜索支付宝开放平台,使用支付宝扫码即可登录 2.配置沙箱环境***,找到开发服务–>研发服务,点击进入后即可开始配置 3.点击沙箱应用可以看到如下图所示,APPID是支付宝根据个人登录的支付 ...

  3. 支付宝支付功能实现原理,微信公众号中实现支付宝支付功能开发流程

    这篇文章使用一些简单的代码例子来解释微信接入支付宝支付功能的操作步骤,即使新手也可以轻松参透的. 第三方支付是指具备一定实力和信誉保障的独立机构,采用与各大银行签约的方式,通过与银行支付结算系统接口对 ...

  4. java服务端开发支付宝支付接口,网页支付与app支付

    s 前言 在开发的过程中,不可避免的都需要使用支付功能,本文档主要给大家分享,自己的一次支付宝开发时的经历.支付宝开发,对于个人开发者而言相对于其他支付来说相对比较友好,因为有沙箱环境支持我们在开发阶 ...

  5. AndroidSDK结合SpringBoot实现支付宝支付功能

    开发者注册: 1. 创建应用,获取AppID:开发者可在沙箱中完成. 沙箱应用网址:https://openhome.alipay.com/platform/appDaily.htm 2. 在支付宝助 ...

  6. Spring MVC+Spring+Mybatis实现支付宝支付功能(附完整代码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:https://urlify.cn/aYrmIr 前言 本教 ...

  7. Spring MVC+Spring+Mybatis实现支付宝支付功能(图文详解+完整代码)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:欧阳思海 github.com/OUYANGSIHAI/si ...

  8. SSM 实现支付宝支付功能(图文详解+完整代码)

    阅读本文大概需要 4 分钟. 前言 本教程详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将支付宝支付整合到ssm框架」,详细的代码和图文解释, ...

  9. SSM整合支付宝支付功能

    本博客详细介绍了如何使用ssm框架实现支付宝支付功能.本文章分为两大部分,分别是「支付宝测试环境代码测试」和「将支付宝支付整合到ssm框架」,详细的代码和图文解释,自己实践的时候一定仔细阅读相关文档. ...

  10. JAVA对接支付宝支付(超详细,一看就懂)

    Java对接支付宝支付 更多内容 冷文博客: 传送门 引入 为什么要发这篇帖子呢?原因很简单,就是因为在一个稍稍正规一点的应用上都会有支付这个环节,我们日常的在线支付如今包括支付宝,微信钱包,QQ钱包 ...

最新文章

  1. JAVA-Socket通信笔记
  2. windows 驱动和应用层的三种通信方式 r3到r0 DeviceIoControl 4种ioctl请求
  3. 数据库里any 和 all 的区别
  4. 7月份计划-----dream
  5. 自由自在珍珠奶茶 喝出缤纷夏季
  6. MFC中的模态对话框与非模态对话框
  7. 前端白屏问题_深入理解前端性能监控
  8. 图像处理中提取中间特征是干什么_PyTorch提取中间层特征?
  9. python 散点图点击链接图片_在Python和matplotlib中连接三维散点图中的两点
  10. 感受来自AI的幸福:可可豆、巧克力与人工智能
  11. 【渗透测试实战】PHP语言有哪些后门?以及利用方法
  12. Makefile-filter和filter-out
  13. VSCode Debug API
  14. LeetCode 要记得一些小trick
  15. 全球系留无人机系统行业调研及趋势分析报告
  16. (外接屏幕亮度控制软件)AOC显示器、Dell显示器
  17. 局域网技术,涉及到VLAN,TRUNK,链路聚合,VLAN间路由,单臂路由,
  18. 关于无法在驱动器0分区上安装Windows
  19. 论文笔记:CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection
  20. 颠覆大数据分析之Storm的设计模式

热门文章

  1. Unity利用GPUinstancing实现大面积草地
  2. FastJson jar包下载教程
  3. [Java]图书管理系统
  4. 清华大学数学与计算机学院院长,王跃宣(清华大学教授)_百度百科
  5. 2019年税收分类编码_您如何在2019年学习编码
  6. NFine框架踩过的坑
  7. 二级c语言试题讲解,计算机二级C语言真题讲解.ppt
  8. 中国城市经纬度表(精确到县区)Google地图用
  9. 智能AI机器人源码,电话机器人源码和系统部署运行环境freeswitch
  10. 图书管理系统 ——mysql数据库