java对接支付宝支付演示

现在有不少的项目都需要对接支付,这里主要是进行讲解对接支付宝H5支付
废话不多说 上代码
引入支付宝官方的sdk

 <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-easysdk --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-easysdk</artifactId><version>2.2.0</version></dependency><!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java --><dependency><groupId>com.alipay.sdk</groupId><artifactId>alipay-sdk-java</artifactId><version>4.10.124.ALL</version></dependency>

编写调用支付的方法

 @RequestMapping("/test")public void doPost(HttpServletRequest httpRequest,HttpServletResponse httpResponse) throws ServletException, IOException {//商户号String APP_ID="";//私钥String APP_PRIVATE_KEY="";//编码String CHARSET="UTF-8";//公钥String ALIPAY_PUBLIC_KEY="";//我是沙箱环境 所有请求地址是沙箱版AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2"); //获得初始化的AlipayClientAlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();//创建API对应的request//这里主要是设置回调 也就是支付成功之后你要做什么操作的地址alipayRequest.setReturnUrl("http://domain.com/CallBack/return_url.jsp");alipayRequest.setNotifyUrl("http://domain.com/CallBack/notify_url.jsp");//在公共参数中设置回跳和通知地址/*** @description:* @author: hwk* @date: 2022/6/14 16:34* @param: out_trade_no 订单编号* total_amount 付款金额* subject 商品名称* product_code 支付方式 如手机网站 pc网站 APP支付等**/JSONObject jsonObject = new JSONObject();jsonObject.put("out_trade_no", "264484811515156");jsonObject.put("total_amount", "66");jsonObject.put("subject", "测试支付");jsonObject.put("product_code", "QUICK_WAP_WAY");alipayRequest.setBizContent(jsonObject.toJSONString());String form="";try {form = alipayClient.pageExecute(alipayRequest).getBody();} catch (AlipayApiException e) {e.printStackTrace();}//因为我不会写前端 所以直接输出测试 如果在正式环境中 建议直接return 返回的from表单httpResponse.setContentType("text/html;charset=" + CHARSET);httpResponse.getWriter().write(form);//直接将完整的表单html输出到页面httpResponse.getWriter().flush();httpResponse.getWriter().close();}//支付回调@RequestMapping("/test1")public void aliPayNotify() {Map<String, String> params = getAllRequestParam(request);String tradeStatus = params.get("trade_status");if ("TRADE_SUCCESS".equals(tradeStatus)) {System.out.println("支付成功");}else {System.out.println("支付失败");}}private Map<String, String> getAllRequestParam(final HttpServletRequest request) {Map<String, String> res = new HashMap<>(8);Enumeration<?> temp = request.getParameterNames();while (temp.hasMoreElements()) {String en = (String) temp.nextElement();String value = request.getParameter(en);res.put(en, value);}return res;}

入参正式支付的时候 可以用string json等接收 我这里只是演示

成功演示图


讲解一下实际支付的时候所需要的参数吧

除去appid 公钥 私钥什么的
你正常支付所需要的参数无非 就是商品的id(主要是用于根据商品id查询商品的名称价格等后续调用支付的时候需要)、购买人
然后查询到商品的详情 set到对应的参数里面 去调用支付宝sdk 来生成from表单
你们可以在回调里面进行支付成功之后的一些操作
比如说:购买的是会员 然后在支付成功之后去给他进行开通会员或者续费会员
有一点要提醒你们 发起支付前创建的订单一定要是未支付 在回调里面判断用户是否成功
如果有用户主动查询是否支付成功的操作 建议根据订单号先去数据库查询是否等于支付成功 如果不等于去官方给的接口去查是否支付成功 这样做的好处就是有的时候回调慢了一点 用户主动去查询如果是支付成功不会造成返回支付失败

java对接支付宝支付相关推荐

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

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

  2. java 对接支付宝支付

    2019独角兽企业重金招聘Python工程师标准>>> 对接支付宝支付的前提: 1,商户开通支付能力 登录蚂蚁金服 开放平台:https://open.alipay.com/plat ...

  3. 【超详细,全流程】java对接支付宝支付

    支付流程 一.对接前的准备 1.1创建应用,获取参数:APPID(使用沙箱环境可跳过) 1.1.1添加产品 1.1.2配置密钥,获取第二个参数:商户的私钥 1.1.3支付宝网关 1.1.4生成参数密钥 ...

  4. java对接支付宝支付(手机网站支付)

    记录一下对接支付宝支付的过程,既是对这段时间工作的总结,也希望能对之后需要对接支付宝手机网站支付的小伙伴一点帮助. 1.查看官方文档,具体对接流程(https://docs.open.alipay.c ...

  5. Java对接支付宝支付(App+H5)

    App+H5支付方式(比微信简单) 1.登录支付宝开放平台,选择网页和移动应用: 2.填完app相关的信息后,点击App,设置接口加签方式:如下,选择SHA256,然后通过支付宝提供的工具生成公私钥对 ...

  6. Java对接第三方支付渠道之支付宝支付

    提示:支付宝相对于微信支付更人性化,且细节做得更好. Java对接第三方支付渠道之支付宝支付 一.前期准备工作 二.导入依赖 三.书写配置类 四.书写配置文件 五.调用相关支付接口 1.流程图 2.创 ...

  7. java对接支付宝实现支付功能

    ** java对接支付宝实现支付功能 ** Controller /*** 支付功能* @return*/ @RequestMapping("/test") public Mode ...

  8. JAVA对接微信支付和支付宝支付(APP端支付)

    本文主要介绍的是JAVA对接支付宝和微信支付,废话少说上代码(部分业务代码就不上了,例如订单等,根据业务需求自行修改): 用到的工具类: maven依赖: <!-- https://mvnrep ...

  9. java对接支付宝小程序支付

    今天晚上12点部署生产项目,又是个不眠夜. 之前整的好多东西都忘光了,还是记录下来吧. 跟对接支付宝支付差不多,地址:小程序支付能力介绍 | 小程序 开通流程: 1.先要去支付宝开放平台,创建小程序. ...

最新文章

  1. 测试报告-1.1组成和要点
  2. 使用MyEclipse2017进行web开发
  3. 《C语言接口与实现:创建可重用软件的技术》一2.6 扩展阅读
  4. 关于session共享
  5. 利用gulp处理简单的前端问题
  6. Eclipse/MyEclipse安装FindBugs
  7. WiFi 热点共享设置
  8. mybatis的增删改操作及需要注意的问题
  9. Swift5 利用元祖 返回多个 类型的函数,取出
  10. C# Azure 存储-Blob
  11. tf.keras data
  12. java的actioncontext_【疑惑】ActionContext ac = ActionContext.getContext();?
  13. mysql strchr_PHP字符串函数之 strstr stristr
  14. Button.Text属性换行问题(Button.Bounds自动换行)
  15. C语言实现二维伊辛模型的蒙特卡罗方法模拟
  16. python曼·惠特尼U检验(Mann-Whitney U Test)
  17. 使用Nhibernate.Tool.Hbm2Net来根据HBML文件生成POJO类的代码
  18. 已解决ImportError: Pandas requires version ‘2.0.1‘ or newer of ‘xlrd‘ (version ‘1.2.0‘ currently instal
  19. 【教学类-30-04】10以内减法题不重复(一页两份)(包括6以内、7以内、8以内、9以内、10以内减法题 只抽取25个)
  20. 随机产生单词java_JavaGUI实现随机单词答题游戏

热门文章

  1. 四十四、​Fluent 收敛标准-质量和能量守恒
  2. javascript当中options的用法
  3. java关于“随机点名器“的案例
  4. 4K动态视频壁纸「Dynamic Wallpaper」
  5. wordpress外贸跨境电商独立站WooCommerce插件安装教程
  6. python-机器学习-手写数字识别
  7. PG与mysql的区别
  8. 变分推断 python_变分推断(Variational Inference)
  9. pythonsqlite操作_在Python中操作SQLite3
  10. Panda3D 初学者教程(一)