支付宝支付前提

需开通支付宝支付服务

官网地址

文档地址

项目导入支付宝maven依赖

    <dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.8.10.ALL</version></dependency>

相关配置文件, 读取配置文件

// 配置文件,在项目resources目录下
#ali
alipay.public.key =
alipay.private.key =
alipay.app.public.key =
alipay.app.pay.notify.url =
alipay.app.id =
gateway_url = https://openapi.alipaydev.com/gateway.do// 读取配置文件类
@Component
public class SysConfig
{public static final String ENCODING = "UTF-8";// 配置文件类名称public static final String CONFIG_PATH = "";private Properties props = null;/*** 获取全局唯一的SysConfig 对象** @return*/public static SysConfig getInstance(){SysConfig config = ConfigHolder.INSTANCE.getConf();config.init();return config;}/*** 初始化*/private void init(){props = new Properties();loadConfigProps();}/*** 加载配置文件*/public void loadConfigProps(){InputStream is = null;try{is = getClass().getResourceAsStream(CONFIG_PATH);props.load(is);}catch (IOException e){e.printStackTrace();}finally{if (is != null){try{is.close();is = null;}catch (Exception e){e.printStackTrace();}}}}public String getProperty(String key){String tmp = props.getProperty(key);if (StringUtils.isNotEmpty(tmp)){return tmp.trim();}return tmp;}enum ConfigHolder{INSTANCE;SysConfig conf;ConfigHolder(){conf = new SysConfig();}public SysConfig getConf(){return conf;}}}

初始化AlipayClient

/*** 获得初始化的AlipayClient** @return AlipayClient*/private AlipayClient getAlipayClient() {// 获得初始化的AlipayClientreturn new DefaultAlipayClient(//支付宝网关SysConfig.getInstance().getProperty(EnumAlipayKey.gateway_url.getKey()),//appidSysConfig.getInstance().getProperty(EnumAlipayKey.app_id.getKey()),//商户私钥SysConfig.getInstance().getProperty(EnumAlipayKey.alipay_private_key.getKey()),AlipayConstants.FORMAT_JSON,//字符编码格式AlipayConstants.CHARSET_UTF8,//支付宝公钥SysConfig.getInstance().getProperty(EnumAlipayKey.alipay_public_key.getKey()),//签名方式AlipayConstants.SIGN_TYPE_RSA2);}

调用支付的request

`       // 获得初始化的AlipayClientAlipayClient alipayClient = getAlipayClient();// 设置请求参数AlipayTradeAppPayRequest alipayRequest = new AlipayTradeAppPayRequest();// 服务器异步通知,支付宝会回调该路径,必须外网且不能有请求参数,获取回调参数校验后 处理自己业务逻辑(修改订单状态等等)alipayRequest.setNotifyUrl(SysConfig.getInstance().getProperty(EnumAlipayKey.app_pay_notify_url.getKey()));// 封装参数AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();model.setOutTradeNo(orderSn);model.setTotalAmount(orderInfo.getPayPrice());model.setSubject(orderInfo.getCourseName());model.setBody("");model.setProductCode("FAST_INSTANT_TRADE_PAY");model.setTimeoutExpress("15m");alipayRequest.setBizModel(model);//  请求支付宝进行支付,获取支付结果String result = alipayClient.sdkExecute(alipayRequest).getBody();log.info("支付结果:{}", result);

调用查询订单request

     // 获得初始化的AlipayClientAlipayClient alipayClient = getAlipayClient();AlipayTradeQueryRequest queryRequest = new AlipayTradeQueryRequest();AlipayTradeQueryModel queryModel = new AlipayTradeQueryModel();queryModel.setOutTradeNo(orderSn);queryRequest.setBizModel(queryModel);// 调用查询AlipayTradeQueryResponse execute = alipayClient.execute(queryRequest);log.info("返回结果:{}", execute.getBody()));

退款,退款查询等等类似

好啦, 就到这了,如有不足和疑问请留言

java 支付宝支付相关推荐

  1. Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)

    最近一直在接触第三方,刚接入完支付宝的API做一下总结,个人能力薄弱有不对的地方望指教.  做的是一个小型电商项目,所以会接入第三方的支付和登入功能, 第一次接入第三方撸了很多官方文档. 进入主题, ...

  2. Java - 支付宝支付

    一. APP支付 APP支付适用于商家在 App 应用中集成支付宝支付功能. 商家APP调用支付宝提供的 SDK,SDK 再调用支付宝APP内的支付模块.如果用户已安装支付宝 APP,商家 APP 会 ...

  3. Java 支付宝支付 Alipay

    相关官方文档位置:https://docs.open.alipay.com/api_1 阿里的文档还是比较清晰明了的,Java部分的代码更是做了非常棒的封装,引用jar包中的方法,支付宝的流程都类似, ...

  4. JAVA 支付宝支付系统实战项目超详解

    结合支付宝官网实现的 支付宝当面支付功能,非常详细看我一篇就够了 1. 目的 2. 说明 3. 申请支付宝的账号(每个人都有做,不要用我的) 3.1. 扫码登陆 3.2. 账号的申请 3.3. 记录你 ...

  5. java 支付宝支付(手机APP支付、电脑网站支付)

    基础配置类 import com.alipay.api.AlipayClient;/* **类名:AlipayConfig*功能:基础配置类*详细:设置帐户有关信息及返回路径*修改日期:2017-04 ...

  6. Java支付宝支付(Alipay),支付接口,同步异步通知

    做这个测试必须先注册成为支付宝开发者,最好要有一定的Java基础.注意同步异步通知这个必须要让支付宝可以访问你的项目,也就是说必须让支付宝可以访问你的项目中的方法,所以要把项目放在公网上,如果只是简单 ...

  7. Java 支付宝支付,退款,单笔转账到支付宝账户(单笔转账到支付宝账户)

    上次分享了支付宝订单退款的代码,今天分享一下支付宝转账的操作.  现在是有一个余额提现的功能,本来是打算做提现到银行卡的,但是客户嫌麻烦不想注册银联的开放平台账户,就说先提现到支付宝就行,二期再做银行 ...

  8. JAVA 支付宝支付_史诗级简单教程(SpringBoot)

    注册沙箱的教程就省略了 这里直接贴代码,让你们的代码跑起来快步如飞: 没有公网也能测试,就是接收不到支付宝的回调: 这里我是用的内网转发工具 沙箱里面把私匙和公匙填好: 这是我的项目目录 这里贴一下我 ...

  9. Java支付宝支付接口对接(app端)

    前言:大致说一下流程,其实支付宝官方文档写的很清楚了,还有就是下面我写的一些描述可能转载了其他博客的内容. 用户在app端提交订单--->选择支付方式即支付宝付款(调用了商家端的付款接口,调用之 ...

最新文章

  1. python怎么画函数图_可视化|Python绘制桑基图
  2. 替换某个字符串_postman教程-10-如何在集合中快速查询和替换数据
  3. 智能合约和区块链技术:入门指南
  4. qt中label双击_qt关于QLabel控件的实现双击调用文件对话框
  5. 栈、堆、静态存储区和程序的内存布局
  6. 租房界的php,php实现出租房数据管理及搜索页面
  7. flink(一个流处理,一个批处理)
  8. 一主多备几影响 oracle,Oracle 10g 一主多备的搭建技巧
  9. 节点大小可变的环形队列实现
  10. 微信支付之JSAPI开发-第二篇:业务流程详解与方案设计
  11. idea迁移到其他电脑,省去重新安装破解及配置
  12. 《Java8实战》-第十章笔记(用Optional取代null)
  13. mamp 扩展 php,Mac OS 下如何在 MAMP Pro 中安装php 扩展 zip
  14. 2009年:国内常见的PKM工具软件介绍
  15. 关于csrss.exe和winlogon.exe进程多、占用CPU高的解决办法
  16. JSP基础教程之表单编辑
  17. python房价预测_人工智能python实现-预测房价:回归问题
  18. 计算个人所得税(老版)
  19. 【VRP问题】基于遗传算法求解带容量的VRP问题matlab源码
  20. Python基础——循环语句

热门文章

  1. c语言编写鬼谷子算法,什么是鬼谷子八字测算,运用了怎样的术数原理?
  2. 太阳光是平行光吗_从科学角度解释,为什么太阳光不是平行的?用铁路作比较就明白了...
  3. StreamSets数据操作平台(数据移动及数据清洗强大工具)
  4. 10027---MySQL 5.6 for Windows 解压缩版配置安装
  5. 发表第二首“梨花体”诗_拔剑-浆糊的传说_新浪博客
  6. 文贝中的文章如何实现仅自己可见?
  7. ffmpeg的pts之解析
  8. Windows系统diskpart删除U盘分区
  9. 推荐 5 个本周 火火火 的开源项目
  10. 消息推送小探索:对即时性和送达率有要求的场景