java支付接口(支付宝、微信、QQ)

目录

    • 对接步骤
    • 效果图
    • 对接注意事项
    • 尾言

去年对接了一个第三方支付接口,也就是码支付,觉得挺不错,能支持的支付方式有支付宝、微信、QQ,如果是个人测试使用,除了微信其他两个都可以。最近有空整理了一下,分享出来,感兴趣的朋友可以对接,对新手比较友好,下面我就把demo以及对接注意点贴出…

对接步骤

官网地址:码支付
首先去官网注册账号,这个就不过多介绍了,注册完后登录点击使用教程,把监控软件下载到本地
在这里插入图片描述
在这里插入图片描述
监控软件使用:
码支付软件使用教程

将以下三个类加到项目中:
demo.jsp(支付操作类):


<html>
<head><meta name="keywords" content=""><meta name="description" content=""><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>充值</title>
<link rel="stylesheet" href="css/demo.css" />
</head>
<body>
<form name="form1" id="form1" method="get" action="codepay.jsp">
<input type="hidden" name="urlName" value="${pageContext.request.contextPath }"><div><table width="550" border="0" align="center" cellpadding="8" cellspacing="1" bgcolor="#ffffff"><tbody><tr><td colspan="2"><div align="center"><strong>在线充值</strong></div></td></tr><!--          注释以下代码 可禁止自己输入价格--><tr><td><div align="right">金额:</div></td><td><input name="price" id="price" type="text" value=""   class="input_text"></td></tr><!--              注释结束位置            --><tr><!--   <td><div align="right">用户:</div></td><td><input name="pay_id" id="pay_id" type="text" value="" class="input_text"style=" width:200px;"   ></td>--></tr><tr><td><div align="right">支付:</div></td><td><label><div class="type_select alipay_select"><input type="radio" name="type" value="1" checked="checked"></div></label><label><div class="type_select wechat_select"><input type="radio" name="type" value="3"></div></label><label><div class="qqpay_select type_select"><input type="radio" name="type" value="2"></div></label></td></tr><tr><td><div align="right"></div></td><td><label><input type="submit"  id="Submit" class="button button-pill button-primary"value="支付宝支付"></label></td></tr></tbody></table></div>
</form>
<script src="http://codepay.fateqq.com/js/jquery-1.10.2.min.js"></script><script type="text/javascript">var type = document.getElementsByName('type');var price = document.getElementById('price');var money = document.getElementById('money');var FormSubmit = document.getElementById('Submit');for (var i = 0; i < type.length; i++) {type[i].onclick = function () {switch (parseInt(this.value)) {case 1:FormSubmit.value = '支付宝支付';break;case 2:FormSubmit.value = 'QQ钱包支付';break;case 3:FormSubmit.value = '微信支付';break;default:FormSubmit.value = '支付宝支付';}}}$(".w-pay-money").click(function () {$(".w-pay-money").removeClass('w-pay-money-selected');$(this).addClass('w-pay-money-selected');price.value = $(this).attr('data');money.value = $(this).attr('data');});</script>
</body>
</html>

在这里插入图片描述
这里要注意一点:有些朋友去官方下载的demo,我的做了一些改变,就是支付人唯一标识这里我删掉了,在后台传了固定的值:

 <td><input name="pay_id" id="pay_id" type="text" value="" class="input_text"style=" width:200px;"   ></td>

codepay.jsp(接收参数 创建订单):
这个类比较重要,主要的作用就是将demo页面的值传入接收,生成订单项,提交至官方url进行处理,返回回执结果,同步跳转提示地址等…

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%/*** 接收参数 创建订单*/String token = "更改成您的token令牌"; //记得更改 http://codepay.fateqq.com 后台可设置String codepay_id ="更改成您的码支付ID" ;//记得更改 http://codepay.fateqq.com 后台可获得String price=request.getParameter("price"); //表单提交的价格String type=request.getParameter("type"); //支付类型  1:支付宝 2:QQ钱包 3:微信String pay_id=request.getParameter("pay_id"); //支付人的唯一标识String param=request.getParameter("param"); //自定义一些参数 支付后返回String notify_url="http://你的域名/codepay.jsp";//通知地址String return_url="";//支付后同步跳转地址if(price==null){ price="1";}//参数有中文则需要URL编码String url="https://api.xiuxiu888.com/creat_order?id="+codepay_id+"&pay_id="+pay_id+"&price="+price+"&type="+type+"&token="+token+"&param="+param+"&notify_url="+notify_url+"&return_url="+return_url;response.sendRedirect(url);%>

notify.jsp(验证通知 处理自己的业务):
这个类主要就是将所有参数进行了一个MD5加密的校验,偷偷告诉你们,如果有自己的通知结果页面,这个类可有可无,不过为了安全起见,还是加上,通过这个类进行加密校验,如果ok就跳转页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="java.security.MessageDigest"%>
<%@ page import="java.math.*"%><%/***验证通知 处理自己的业务*/String key = "通信密钥"; //记得更改 http://codepay.fateqq.com 后台可设置Map<String,String> params = new HashMap<String,String>(); //申明hashMap变量储存接收到的参数名用于排序Map requestParams = request.getParameterMap(); //获取请求的全部参数String valueStr = ""; //申明字符变量 保存接收到的变量for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();String[] values = (String[]) requestParams.get(name);valueStr = values[0];//乱码解决,这段代码在出现乱码时使用。如果sign不相等也可以使用这段代码转化//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");params.put(name, valueStr);//增加到params保存}List<String> keys = new ArrayList<String>(params.keySet()); //转为数组Collections.sort(keys); //重新排序String prestr = "";String sign= params.get("sign"); //获取接收到的sign 参数for (int i = 0; i < keys.size(); i++) { //遍历拼接url 拼接成a=1&b=2 进行MD5签名String key_name = keys.get(i);String value = params.get(key_name);if(value== null || value.equals("") ||key_name.equals("sign")){ //跳过这些 不签名continue;}if (prestr.equals("")){prestr =  key_name + "=" + value;}else{prestr =  prestr +"&" + key_name + "=" + value;}}MessageDigest md = MessageDigest.getInstance("MD5");md.update((prestr+key).getBytes());String  mySign = new BigInteger(1, md.digest()).toString(16).toLowerCase();if(mySign.length()!=32)mySign="0"+mySign;if(mySign.equals(sign)){ //编码要匹配 编码不一致中文会导致加密结果不一致//参数合法处理业务//request.getParameter("pay_no") 流水号//request.getParameter("pay_id") 用户唯一标识//request.getParameter("money") 付款金额//request.getParameter("price") 提交的金额out.print("ok");}else{//参数不合法out.print("fail");}
%>

效果图

选择支付方式页面(博主比较穷,没开通会员版),所以这里就拿QQ支付作为演示:
在这里插入图片描述
点击支付后,提交的一个界面:
在这里插入图片描述
支付完成后,同步跳转通知:
在这里插入图片描述
有图有真相,这个平台对于想入手支付接口的朋友来说还是比较棒的,官方提供的demo可修改性也比较好,可以结合自己的项目场景去开发…

对接注意事项

先别溜,先听博主讲完,给大家说几个一定要注意的点,也是博主踩过的坑:

  1. 一定要去后台把参数一一正确的填入codepay.jspnotify.jsp这两个类,获取参数如图:
    在这里插入图片描述

  2. 一定要下载好监控软件,一定一定!!!如果你开通了了会员版,当我没说…,下载好后,在测试运行项目前,一定要运行监控软件进行监控,不然得不到回执结果,页面不会跳转,而且还会掉单…

  3. 基本业务逻辑都是收款码上显示多少,手机在扫码支付时,固定只能支付对应的金额,就像这样(前台收取1元钱,手机在扫码付款时,图片为手机截图,没做处理,有点大见谅):
    在这里插入图片描述但是!!!!!如果没去官方后台上传对应金额的收款码,扫了之后还是可以手动输入,当时我发现扫了之后,没有直接对对应的金额直接付款,而是可以手动输入比较疑惑,所以就去后台看了看,要上传对应的收款码
    在这里插入图片描述

  4. codepay.jsp页面的同步通知地址可留空,如果想跳转自己项目的路径,一定要填写正确,也就是这一行:

String return_url = "";//支付后同步跳转地址

尾言

到这里就对接完事了,觉得有用的朋友们可以点个赞,您的一个赞就是博主最大的动力(有内味了…),对接有问题的可以评论区提问,博主看到第一时间回答…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/40777.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

支付接口调用(支付宝、微信)

一、支付宝支付 1、官方文档是最好的教程&#xff1a; ①电脑网站支付文档&#xff1a;https://docs.open.alipay.com/270/105899/ ②支付宝沙箱使用教程&#xff1a;https://docs.open.alipay.com/200/105311/ ③调用支付宝相关接口的应用创建&#xff1a;https://open.alipa…

php处理支付宝应用网关给接口发送的post参数

php如何接收支付宝应用网关发送的POST请求方式,参数又是GET请求的数据格式 配置支付宝应用网关如何接收支付宝异步通知(应用网关接收请求)将&连接的参数分割成数组实例&#xff1a;难点 配置支付宝应用网关 首先要在服务器上写一个接口,然后将接口的访问地址设置在支付宝应…

如何调用支付宝接口

之前做web项目接入支付宝&#xff0c;网上看了很多文档和案列&#xff0c;不是不讲重点就是过时不适用了&#xff0c;导致走了很多弯路&#xff0c;经过冷静分析总算跑通了&#xff0c;这里分享下接入流程。 1.准备工作 1)支付宝服务商账号&#xff0c;现在叫蚂蚁金服&#x…

支付宝接口的调用

支付流程图 对接支付宝的准备工作 一、申请条件 1.企业或个体工商户可申请&#xff1b; 2. 提供真实有效的营业执照&#xff0c;且支付宝账户名称需与营业执照主体一致&#xff1b; 3. 网站能正常访问且页面信息有完整商品内容&#xff1b; 4. 网站必须通过ICP备案&#xff0…

微信 及支付宝 支付接口 功能

1&#xff1a;首页需要了解支付宝跟微信的开发文档&#xff0c;这里就贴上文档网址&#xff0c;不做过多描述 微信&#xff1a;https://pay.weixin.qq.com/wiki/doc/api/index.html 支付宝&#xff1a;https://open.alipay.com/developmentDocument.htm 2&#xff1a;业务流程…

android应用程序如何调用支付宝接口

最近在做一个关于购物商城的项目&#xff0c;项目里面付款这块我选的是调用支付宝的接口&#xff0c;因为用的人比较多。 在网上搜索了以下&#xff0c;有很多这方面的教程&#xff0c;但大部分教程过于陈旧&#xff0c;而且描述的过于简单。而且支付宝提供的接口一直在更新&am…

小编和ChatGPT聊了下智能运维,大家看看能不能把专家替了?

近日&#xff0c;聊天机器人ChatGPT爆火&#xff0c;仅仅推出2个月&#xff0c;其月活跃用户就成功过亿&#xff0c;成为历史上增长最快的消费者应用程序。连一向高调的马斯克在使用ChatGPT都直呼“好到吓人”&#xff0c;甚至断言&#xff1a;“我们离强大到危险的AI不远了。”…

外贸单证制作常用名称中英互译表

外贸单证制作对于外贸人来说会遇到的样式很多&#xff0c;因此在进行这项工作的过程中&#xff0c;会有很多专业单证英文名称&#xff0c;对于这些名称的了解就很重要。这里汇信外贸管理软件整理了包含390种常用外贸单证名称的中英互译表&#xff0c;大家来分享吧&#xff01; …

广外2023口译(非英专)复习资料以及模考反馈

大家好&#xff0c;有几位同学想让我更新一下口译&#xff0c;本人听译情况&#xff08;四级听力209&#xff0c;六级听力197&#xff0c;广外笔译94&#xff09; here I come&#xff01;还是个人复习向&#xff0c;现在这个节点了&#xff0c;平时没练的话就只能求保命了。 …

香港中文大学计算机辅助翻译课程,港中文翻译(MA in Translation)专业申请解析...

原标题&#xff1a;港中文翻译(MA in Translation)专业申请解析 最近随着《亲爱的翻译官》的热播&#xff0c;翻译专业也重新受到大家的关注&#xff0c;下面我们就给大家介绍香港中文大学翻译硕士(Master of Arts in Translation)。 项目时长&#xff1a;1年 学费&#xff1a;…

【打卡帖】7日玩转ESP32——(第2日) GPIO输入,按键的长按和短按

文章目录 一、硬件准备二、知识要点三、参考例程四、今日作业五、参考答案5.1 知识点5.2 中断方式5.3 定时扫描 六、打卡~ 一、硬件准备 开发板上面有一个Boot Button按键。 从原理图可以看出&#xff0c;按键按下时&#xff0c;GPIO9是低电平。按键弹起时&#xff0c;GPIO是…

006. esp32 下载--第二版

1. 先按boot键&#xff08;不放开&#xff09;&#xff0c;再按 复位按键&#xff0c;按下&#xff0c;放开。会进入下载模式。如果进入下载模式失败。 重复&#xff0c;按住Boot键不放&#xff0c;复位按键&#xff0c;按下&#xff0c;放开。 2.下载图示如下&#xff1a; …

基于ESP32的硬件项目教程(三)ESP32的引脚说明及数字信号读写操作

引脚说明 以下图为例 图片下方的英文部分已经有了介绍&#xff0c;本文将进行一次简述。 此型号开发板一共38个引脚&#xff0c;除去电源引脚外&#xff0c;可用IO引脚为34个&#xff0c;在图中有GPIO6~GPIO11等6个引脚标注有红色“&#xff01;”&#xff0c;这6个引脚常作为…

【填坑】ESP32 bootloader初探(上)

前言 大名鼎鼎的乐鑫ESP8266 WIFI模组你应该不陌生&#xff0c;不用我多说了。在这之后乐鑫还更迭了更多高性能的芯片型号&#xff0c;比如这次我要记录的ESP32-C3&#xff0c;搭载近期很火的RISC-V指令集处理器&#xff0c;支持2.4G wifi、BLE-5&#xff0c;拥有丰富应用场景…

ESP32初级入门

1.下载的时候如果出现不能下载&#xff0c;那是因为没复位&#xff0c;在出现connect时按住板子上的boot按键&#xff0c;出进度了然后松开&#xff0c;就会正常下载。 2.点灯和uno一样&#xff0c;直接在setup里面设置管脚模式&#xff0c;在loop里面赋值就行&#xff0c;根本…

ESP32 Secure Boot和Flash加密

ESP32的代码是存在外部Flash中&#xff0c;如果不加密&#xff0c;很容易被窃取代码。 ESP32的secure boot和flash加密是两个功能&#xff0c;但是要配合一起使用&#xff0c;其加密效果才好。 一、初次加密。 这里只写可重复烧写的加密方式&#xff0c;其加密步骤如下&…

ESP32修改BootLoader:在boot中添加GPIO和IIC驱动方式

ESP32修改BootLoader&#xff1a;在boot中添加GPIO和IIC驱动方式 1. ESP Bootloader简介 ESP32有着强大的引导加载程序&#xff08;Bootloader&#xff09;功能&#xff1a; 主要执行以下任务&#xff1a; 内部模块的最小化初始配置&#xff1b; 根据分区表和 ota_data&#…

ESP32 基础篇: 启动时 rst cause 和 boot mode

本文参考 ESP32 技术参考手册 和 ESP32-WROOM-32 datasheet 简介 在 ESP32 启动时, ROM CODE 会读取 GPIO 状态和 rst cause 状态, 进而决定 ESP32 工作模式。 通过了解和掌握 rst cause 和 boot mode, 有助于定位某些系统问题。 例如: ESP32 启动时会有如下打印: rst:0x1 (…

微信小程序 自动对对联

微信小程序 自动对对联 微信扫描二维码体验吧

使用scoped让样式只对当前页面其作用时/deep/ 可以使其对子组件起作用

官方文档https://vue-loader.vuejs.org/guide/scoped-css.html#mixing-local-and-global-styles 使其样式只对当前页面起作用 影响到里面的子组件