支付宝APP支付Java服务端
支付宝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服务端相关推荐
- 支付宝app支付功能-服务端的实现-python3版
支付宝app支付功能-服务端的实现-python3版 一:需求说明 二:支付宝app支付处理流程 三:所需依赖 3.1 依赖库 3.2 支付配置 3.2.1 沙箱环境配置 3.2.2 正式环境配置 四 ...
- 微信app支付功能-服务端的实现-python3版
微信app支付功能-服务端的实现-python3版 一:需求说明 二:微信app支付处理流程 三:所需依赖 3.1 支付配置 四:接口开发 4.1 创建订单接口 4.2 微信异步回调接口 4.3 订单 ...
- Android安卓原生接入微信app支付PHP服务端
Android安卓接入微信app支付PHP服务端 1.进入微信商户平台查看统一下单接口文档. 在查看完统一下单文档后,能够看到需要传递给微信"统一下单接口"地址的参数有哪些 统一下 ...
- app及Java服务端实现JT808协议的定义解析
app及Java服务端实现JT808协议的定义解析,可以用做行车记录仪等的app. 网上很多帖子已经对JT808协议做了说明,我在这里就不做过多的赘述了. 最近接到一个项目是打车类的,所以对这协议做了 ...
- app支付宝支付java后台_支付宝app支付java后台流程demo
支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...
- 支付宝app支付java后台流程demo
支付宝app支付java后台流程demo 使用ssm框架实现支付宝支付功能. 支付宝测试环境代码测试 源代码 https://github.com/OUYANGSIHAI/sihai-maven-ss ...
- 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)
java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写 一.流程步骤 1.执行流程 当手机端app(就是你公司开发的app) ...
- 微信支付java服务端开发(APP)
我这边是针对微信商户支付功能开发.其他的未涉及到. 当你所有的准备工作准备好后:微信支付申请成功,api_key 配置好,等等一系列. 那么让我们进入java开发吧. 微信支付demo下载: http ...
- IOS IAP APP内支付 Java服务端代码
场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purchase(iap)快速指南了解原理. 直接先上服务端测试通 ...
最新文章
- Oracle EBS R12 客户表结构
- C++实现图片的base64编码
- 贝聊运维自动化体系演化
- Java Servlet ServletContext
- sim800c GPRS模块的透传模式
- BEM —— 源自Yandex的CSS 命名方法论
- Halcon常用图像预处理算子总结
- UEFI开发之应用开发
- redis问题及答案
- win10快捷键整理记录
- esp8266 wifi库文件
- Cradle 从工程学角度预测血管和气管的流量并研究生物
- angluarjs+springmvc实现excel上传并解析,对个别字段进行非空校验,txt生成,txt生成的条件为某列必须为某值且只提供固定的几列发送到ftp...
- 面向对象程序设计php,php面向对象的程序设计
- Java实现数据库读写分离
- 阅读笔记——软件工程的瀑布、教堂和集市
- 信用卡分期利率陷阱——实际利率计算
- 有没有好奇过,用浏览器访问某个网站时,中间经历了什么,如何到达对方的?(初学版)
- [渝粤教育] 西南科技大学 钢筋砼与砌体结构 在线考试复习资料
- CSS实现背景图毛玻璃效果和如何保持图片上的文字显示正常