1、首先设置支付宝账户有关信息及返回路径

/**说明:*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。*/
public class AlipayConfig {//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓//合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partnerpublic static String partner = "2**************1";//商户的私钥,需要PKCS8格式,RSA公私钥生成:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.nBDxfy&treeId=58&articleId=103242&docType=1
public static String private_key = "*************=";//支付宝的公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm?keyType=partner
public static String alipay_public_key  = "*********";// 签名方式public static String sign_type = "RSA";// 调试用,创建TXT日志文件夹路径,见AlipayCore.java类中的logResult(String sWord)打印方法。public static String log_path ="C://";// 字符编码格式 目前支持 gbk 或 utf-8public static String input_charset = "utf-8";// 接收通知的接口名public static String service = "http://60.***.***.00/callbacks.do";//public static String service = "mobile.securitypay.pay";//APPIDpublic static String app_id="2016**********12";//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

2、支付宝APP支付–申请支付请求参数

[申请支付请求参数说明] (https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.O57CIo&treeId=193&articleId=105465&docType=1)

@ResponseBody
@RequestMapping(value = "/alipay.do",  produces = "text/html;charset=UTF-8",method={RequestMethod.GET})
public static String alipay(String body, String subject, String out_trade_no, String total_amount) throws Exception {//公共参数Map<String, String> map = new HashMap<String, String>();map.put("app_id", AlipayConfig.app_id);map.put("method", "alipay.trade.app.pay");map.put("format", "json");map.put("charset", "utf-8");map.put("sign_type", "RSA");map.put("timestamp", UtilDate.getDateFormatter());map.put("version", "1.0");map.put("notify_url", AlipayConfig.service);Map<String, String> m = new HashMap<String, String>();m.put("body", body);m.put("subject", subject);m.put("out_trade_no", out_trade_no);m.put("timeout_express", "30m");m.put("total_amount", total_amount);m.put("seller_id", AlipayConfig.partner);m.put("product_code", "QUICK_MSECURITY_PAY");JSONObject bizcontentJson= JSONObject.fromObject(m);map.put("biz_content", bizcontentJson.toString());//对未签名原始字符串进行签名       String rsaSign = AlipaySignature.rsaSign(map, AlipayConfig.private_key, "utf-8");Map<String, String> map4 = new HashMap<String, String>();map4.put("app_id", AlipayConfig.app_id);map4.put("method", "alipay.trade.app.pay");map4.put("format", "json");map4.put("charset", "utf-8");map4.put("sign_type", "RSA");map4.put("timestamp", URLEncoder.encode(UtilDate.getDateFormatter(),"UTF-8"));map4.put("version", "1.0");map4.put("notify_url",  URLEncoder.encode(AlipayConfig.service,"UTF-8"));//最后对请求字符串的所有一级value(biz_content作为一个value)进行encode,编码格式按请求串中的charset为准,没传charset按UTF-8处理map4.put("biz_content", URLEncoder.encode(bizcontentJson.toString(), "UTF-8"));Map par = AlipayCore.paraFilter(map4); //除去数组中的空值和签名参数String json4 = AlipayCore.createLinkString(map4);   //拼接后的字符串json4=json4 + "&sign=" + URLEncoder.encode(rsaSign, "UTF-8");System.out.println(json4.toString());AliPayMsg apm = new AliPayMsg();apm.setCode("1");apm.setMsg("支付成功");apm.setData(json4.toString());  JSONObject json = JSONObject.fromObject(apm);System.out.println(json.toString());return json.toString();     }

3、支付宝支付结果异步通知业务处理

[支付结果异步通知] (https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.afod0z&treeId=193&articleId=105301&docType=1)

@ResponseBody
@RequestMapping(value = "/callbacks.do",  produces = "text/html;charset=UTF-8",method={RequestMethod.POST})
public String callbacks( HttpServletRequest request ) throws Exception {//接收支付宝返回的请求参数Map requestParams = request.getParameterMap();JSONObject json = JSONObject.fromObject(requestParams);String trade_status = json.get("trade_status").toString().substring(2,json.get("trade_status").toString().length()-2);String out_trade_no = json.get("out_trade_no").toString().substring(2,json.get("out_trade_no").toString().length()-2);String notify_id = json.get("notify_id").toString().substring(2,json.get("notify_id").toString().length()-2);System.out.println("====================================================");System.out.println(json.toString());System.out.println("支付宝回调地址!");System.out.println("商户的订单编号:" + out_trade_no);System.out.println("支付的状态:" + trade_status);    if(trade_status.equals("TRADE_SUCCESS")) {/***支付成功之后的业务处理*/return "SUCCESS";}}else {/***支付失败后的业务处理*/return "SUCCESS";}return "SUCCESS";}

java服务端–支付宝APP支付接口相关推荐

  1. java 支付宝服务端,支付宝app支付服务端的实现-Java版

    前言 最近在工作中需要使用支付宝app支付,在初次使用过程中也不可避免的出现了一些问题,那么本次随笔主要是概述支付宝app支付服务端的整个实现过程以及就服务端出现的一些问题做一些总结. 1.准备工作 ...

  2. php跳转支付宝支付宝支付宝支付,PHP服务端支付宝APP支付

    1.配置参数 'alipay'=>array( //手机支付配置 //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ //合作身份者id,以2088开头的16位纯数字 ...

  3. 服务端支付宝App支付对接笔记

    支付宝在2016年12月份开始将以前的App支付改为移动支付,而现在的App支付则是全新的支付,而功能和以前的App支付并没有太大的差别,但申请现在的App支付需要先废除掉以前的移动支付(控制台显示的 ...

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

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

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

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

  6. java SpringBoot 对接支付宝 APP支付 证书模式及非证书模式

    一. 添加maven依赖 sdk <dependency><groupId>com.alipay.sdk</groupId><artifactId>al ...

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

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

  8. java 服务端验证苹果支付applepay账单

    支付流程 前端支付完,付款成功 苹果会返回一个receipt-data,大概长这个样子{"receipt-data" : "MIIaYAYJKoZIhvcNAQcC--& ...

  9. java服务端验证谷歌支付Google Pay

    翻阅大半个谷歌,对服务器验证账单,讲的少之又少,还TM没有看懂 查阅整个百度,发现几乎所有demo都是用世界上最好的语言php写的,这我 在此坐下记录希望能帮到有需要的人 支付流程 前端支付完成,谷歌 ...

  10. PHP支付宝APP支付接口

    1-1:首先下载支付宝官方SDK,我的是PHP版的,起名"alipay" 下载地址:https://docs.open.alipay.com/54/103419/ 1-2:配置文件 ...

最新文章

  1. 用AI创造可持续发展社会价值,第二届腾讯Light·公益创新挑战赛正式启动
  2. Mysql 另类盲注中的一些技巧
  3. cocos2d-x 帧动画学习
  4. 删除安装的mysql数据库文件_安装/删除MySQL数据库
  5. 2018-2019-1 20165211 实验四 外设驱动程序设计
  6. nssl1317-灵魂分流药剂【分组背包,二维费用背包】
  7. 航空航天工程用不用学c语言,2020年北京航空航天软件工程991答疑
  8. vue学习笔记—bootstrap+vue用户管理
  9. python代码运行助手下载_Python自学:使用代码运行助手
  10. redis 菜鸟教程
  11. Java面向对象编程三大特征-多态
  12. 上市企业小米科技应用的发票扫描仪
  13. mysql 汉化成中文版
  14. Insyde uefi 隐藏设置_苹果手机:插件NoMessageButtons:可隐藏iOS信息应用界面的按钮...
  15. 超全整理——相机标定知识汇总
  16. ALOS卫星轨道插值并绘制轨道
  17. 计算机在化学中的应用免费论文,计算机在化学化工中的应用
  18. gif透明背景动画_在找gif制作app?分享一个GIF制作神器,视频、图片通通可以变GIF...
  19. 第二周周报:预备队训练-week2(二分查找)
  20. 物理像素,设备独立像素等等收录链接

热门文章

  1. 2020福州大学计算机录取名单,福州大学数学与计算机科学/软件学院2020年硕士研究生招生复试结果(第二批非全日制公示)...
  2. QQ表情的发送与接收
  3. 基于JAVA健康生活网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  4. npm install 提示 path .../node_modules/node-sass command failed
  5. 旋转(Rotation)矩阵转欧拉角(euler)
  6. 2.1微信小程序简介
  7. 基于STM32的OLED 屏幕驱动
  8. MIMO信道容量仿真MATLAB,mimo系统的信道容量分析及matlab仿真.doc
  9. 使用 Apache FOP 2.3 + docbook-xsl-ns-1.79.1 转换 Docbook 5.1 格式的 XML 文档成 PDF/RTF 文件
  10. ABAP 数据的基本输出Write简单用法