首页 文章 精选 留言 我的

精选列表

搜索[Java],共10000篇文章
优秀的个人博客,低调大师

如何使用沙箱测试第三方应用授权(java版)

1.首先到沙箱环境中配置授权回调地址; a).沙箱环境配置地址:[url]https://openhome.alipay.com/platform/appDaily.htm[/url] b).正式环境下创建应用配置密钥可参考该贴:[url]https://openclub.alipay.com/read.php?tid=1606&fid=25[/url] 2.应用授权URL拼装 a).拼接规则:[url]https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?[/url]+ appid = 开发者应用的AppId + redirect_uri = 授权回调地址地址(与应用中配置的授权回调地址完全一样,并且需要Encode);如:[url]https

优秀的个人博客,低调大师

如何使用沙箱测试单笔转账到支付宝账号(java版)

说明: 本帖是利用支付宝沙箱测试“单笔转账到支付宝账户”,demo中会配置个人的沙箱账号信息,方便大家测试。 测试环境:Eclipse+JDK1.6及以上+Tomcat6.0及以上 1.目前仅支持账户余额渠道付款。2.转账额度 1)单日转出累计额度为100万元。 2)转账给个人支付宝账户,单笔最高5万元;转账给企业支付宝账户,单笔最高10万元。特殊逻辑注意点:1)如果商户重复请求转账,支付宝会幂等返回成功结果,商户必须对重复转账的业务做好幂等处理;如果不判断,存在潜在的风险,商户自行承担因此而产生的所有损失。2)如果调用alipay.fund.trans.toaccount.transfer掉单时,或返回结果code=20000时,或返回结果code=40004,

优秀的个人博客,低调大师

创建卡券模板接口(alipay.pass.template.add)JAVA版本小样

官方接口文档:https://docs.open.alipay.com/199/105250/ 基本操作流程 1.创建应用等流程不概述了,调用该接口主要第一步是模板设计:推荐使用卡券平(https://alipassprod.alipay.com). 在线编辑获取JSON模板,具体的获取JSON模板参考该文档(必读):https://docs.open.alipay.com/199/105249/ 2.提取到JSON模板信息,即我们所需的tpl_content字段,然后传入到请求参数中. 详见下面代码信息 //创建卡券模板接口(alipay.pass.template.add)publicstaticvoidPassTemplateAdd(){ AlipayClient alipayClient=alipayclient()

优秀的个人博客,低调大师

如何使用沙箱测试手机网站支付辅助接口(java版)

说明:本帖是利用支付宝沙箱测试电脑网站支付接口,demo中会配置个人的沙箱账号信息,方便大家测试。测试环境:测试环境:Eclipse+JDK1.6及以上+Tomcat6.0及以上 1.支付宝手机网站alipay.trade.query (统一收单线下交易查询)二选一输入订单号或者支付宝交易号之后点击查询,然后会很坑爹的发现,新打开一个一样的查询页面,完全没有意义,肯定很多人直接以为出bug了 事实上是他直接后台吧结果打印出来然后就完事了 这边为了方便大家查看结果,稍作修改将结果打印在页面上,不过点击查询,页面订单号没保存,懒得改了哈 2.退款 退款结果 3.退款查询失败,当我们只填写订单号或者交易号时,会报参数无效,必须还有填写退款请求号 4.退款查询成功,退款请求号必填,如果没有,就填成跟订单号(或者交易号)一致即可

优秀的个人博客,低调大师

会员卡删卡(alipay.marketing.card.delete)JAVA版本demo

说明: 该接口是通过API接口进行删除会员卡的操作流程,官方接口文档【会员卡删卡】 开卡接口请参考该贴:[url]https://openclub.alipay.com/read.php?tid=1628&fid=71[/url]代码调用示例: public static void Card_Delete(){ AlipayClient alipayClient=alipayclient(); AlipayMarketingCardDeleteRequest request = new AlipayMarketingCardDeleteRequest(); request.setBizContent("{" + //该值唯一性,必须每次请求都不一样

优秀的个人博客,低调大师

想在Java中实现Excel和Csv的导出吗?看这就对了

前言 最近在项目中遇到一个需求,需要后端提供一个下载Csv和Excel表格的接口。这个接口接收前端的查询参数,针对这些参数对数据库做查询操作。将查询到的结果生成Excel和Csv文件,再以字节流的形式返回给前端。 前端拿到这个流文件之后,最开始用ajax来接收,但是前端发送的请求却被浏览器cancel掉了。后来发现,发展了如此之久的Ajax居然不支持流文件下载。后来前端换成了最原始的XMLHttpRequest,才修复了这个问题。 首先给出项目源码的地址。这是源码,欢迎大家star或者提MR。 Csv 新建controller 先来一个简单的例子。首先在controller中新建这样一个接口。 @GetMapping("csv") public void csv( HttpServletRequest request, HttpServletResponse response ) throws IOException { String fileName = this.getFileName(request, "测试数据.csv"); response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString()); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";"); LinkedHashMap<String, Object> header = new LinkedHashMap<>(); LinkedHashMap<String, Object> body = new LinkedHashMap<>(); header.put("1", "姓名"); header.put("2", "年龄"); List<LinkedHashMap<String, Object>> data = new ArrayList<>(); body.put("1", "小明"); body.put("2", "小王"); data.add(header); data.add(body); data.add(body); data.add(body); FileCopyUtils.copy(ExportUtil.exportCSV(data), response.getOutputStream()); } 其中this.getFileName(request, "测试数据.csv")函数是用来获取导出文件名的函数。单独提出来是因为不同浏览器使用的默认的编码不同。例如,如果使用默认的UTF-8编码。在chrome浏览器中下载会出现中文乱码。代码如下。 private String getFileName(HttpServletRequest request, String name) throws UnsupportedEncodingException { String userAgent = request.getHeader("USER-AGENT"); return userAgent.contains("Mozilla") ? new String(name.getBytes(), "ISO8859-1") : name; } response.getOutputStream()则是用于创建字节输出流,在导出csv文件的controller代码结尾,通过工具类中的复制文件函数将字节流写入到输出流中,从而将csv文件以字节流的形式返回给客户端。 当前端通过http请求访问服务器接口的时候,http中的所有的请求信息都会封装在HttpServletRequest对象中。例如,你可以通过这个对象获取到请求的URL地址,请求的方式,请求的客户端IP和完整主机名,Web服务器的IP和完整主机名,请求行中的参数,获取请求头的参数等等。 针对每一次的HTTP请求,服务器会自动创建一个HttpServletResponse对象和请求对象相对应。响应对象可以对当前的请求进行重定向,自定义响应体的头部,设置返回流等等。 新建导出工具类 我们新建一个导出工具类,来专门负责导出各种格式的文件。代码如下。 public class ExportUtil { public static byte[] exportCSV(List<LinkedHashMap<String, Object>> exportData) { ByteArrayOutputStream out = new ByteArrayOutputStream(); BufferedWriter buffCvsWriter = null; try { buffCvsWriter = new BufferedWriter(new OutputStreamWriter(out, StandardCharsets.UTF_8)); // 将body数据写入表格 for (Iterator<LinkedHashMap<String, Object>> iterator = exportData.iterator(); iterator.hasNext(); ) { fillDataToCsv(buffCvsWriter, iterator.next()); if (iterator.hasNext()) { buffCvsWriter.newLine(); } } // 刷新缓冲 buffCvsWriter.flush(); } catch (IOException e) { e.printStackTrace(); } finally { // 释放资源 if (buffCvsWriter != null) { try { buffCvsWriter.close(); } catch (IOException e) { e.printStackTrace(); } } } return out.toByteArray(); } private static void fillDataToCsv(BufferedWriter buffCvsWriter, LinkedHashMap row) throws IOException { Map.Entry propertyEntry; for (Iterator<Map.Entry> propertyIterator = row.entrySet().iterator(); propertyIterator.hasNext(); ) { propertyEntry = propertyIterator.next(); buffCvsWriter.write("\"" + propertyEntry.getValue().toString() + "\""); if (propertyIterator.hasNext()) { buffCvsWriter.write(","); } } } } fillDataToCsv主要是抽离出来为csv填充一行一行的数据的。 运行 然后运行项目,调用http://localhost:8080/csv,就可以下载示例的csv文件。示例如下。 Excel 新建controller 新建下载xlsx文件的接口。 @GetMapping("xlsx") public void xlsx( HttpServletRequest request, HttpServletResponse response ) throws IOException { String fileName = this.getFileName(request, "测试数据.xlsx"); response.setContentType(MediaType.APPLICATION_OCTET_STREAM.toString()); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\";"); List<LinkedHashMap<String, Object>> datas = new ArrayList<>(); LinkedHashMap<String, Object> data = new LinkedHashMap<>(); data.put("1", "姓名"); data.put("2", "年龄"); datas.add(data); for (int i = 0; i < 5; i++) { data = new LinkedHashMap<>(); data.put("1", "小青"); data.put("2", "小白"); datas.add(data); } Map<String, List<LinkedHashMap<String, Object>>> tableData = new HashMap<>(); tableData.put("日报表", datas); tableData.put("周报表", datas); tableData.put("月报表", datas); FileCopyUtils.copy(ExportUtil.exportXlsx(tableData), response.getOutputStream()); } 补充工具类 上面新建的导出工具类中,只有导出csv的函数,接下来我们要添加导出xlsx的函数。 public static byte[] exportXlsx(Map<String, List<LinkedHashMap<String, Object>>> tableData) { ByteArrayOutputStream out = new ByteArrayOutputStream(); try { HSSFWorkbook workbook = new HSSFWorkbook(); // 创建多个sheet for (Map.Entry<String, List<LinkedHashMap<String, Object>>> entry : tableData.entrySet()) { fillDataToXlsx(workbook.createSheet(entry.getKey()), entry.getValue()); } workbook.write(out); } catch (IOException e) { e.printStackTrace(); } return out.toByteArray(); } /** * 将linkedHashMap中的数据,写入xlsx表格中 * * @param sheet * @param data */ private static void fillDataToXlsx(HSSFSheet sheet, List<LinkedHashMap<String, Object>> data) { HSSFRow currRow; HSSFCell cell; LinkedHashMap row; Map.Entry propertyEntry; int rowIndex = 0; int cellIndex = 0; for (Iterator<LinkedHashMap<String, Object>> iterator = data.iterator(); iterator.hasNext(); ) { row = iterator.next(); currRow = sheet.createRow(rowIndex++); for (Iterator<Map.Entry> propertyIterator = row.entrySet().iterator(); propertyIterator.hasNext(); ) { propertyEntry = propertyIterator.next(); if (propertyIterator.hasNext()) { String value = String.valueOf(propertyEntry.getValue()); cell = currRow.createCell(cellIndex++); cell.setCellValue(value); } else { String value = String.valueOf(propertyEntry.getValue()); cell = currRow.createCell(cellIndex++); cell.setCellValue(value); break; } } if (iterator.hasNext()) { cellIndex = 0; } } } fillDataToXlsx的用途与csv一样,为xlsx文件的每一行刷上数据。 运行 然后运行项目,调用http://localhost:8080/xlsx,就可以下载示例的csv文件。示例如下。 项目地址 最后再次给出项目地址,大家如果没有理解到其中的一些地方,不妨把项目clone下来,自己亲自操作一波。 参考 这是在解决请求被浏览器cancel掉的过程中,很重要的一个参考,分享给大家。 https://www.cnblogs.com/cdemo/p/5225848.html

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册