目录

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

去年对接了一个第三方支付接口,也就是码支付,觉得挺不错,能支持的支付方式有支付宝、微信、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 = "";//支付后同步跳转地址

尾言

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

java支付接口(支付宝、微信、QQ)相关推荐

  1. java对接支付宝微信银联_JavaWEB后端支付银联,支付宝,微信对接

    JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所以对接部分做成了一个小模块. 先说下项目要求: 后端要对接银联无跳转Token支付,支 ...

  2. JavaWEB后端支付银联,支付宝,微信对接

    注:本文来源于:<  JavaWEB后端支付银联,支付宝,微信对接  > JavaWEB后端支付银联,支付宝,微信对接 标签(空格分隔): java 项目概述 最近项目需要后端打通支付,所 ...

  3. 移动支付--银联,支付宝,微信(android)

    在这个移动互联网快速发展的时代,手机已经成为人们生活或者出行之中必不可少的设备了,如今非常多城市的商户都能够採用支付宝,微信支付了.人们出门仅仅须要随身携带带手机.不用带大量现金就能够放心购物了.如今 ...

  4. 建付支付即时到账源码免签支付支持支付宝微信拉卡拉等

    介绍: 建付支付系统即时到账源码_免签支付支持支付宝微信拉卡拉等等_带简单安装教程 源码说明:本站源码全部经过测试,配有前台及后台管理界面演示图,去除后门,绿色安全,希望对大家学习研究能有所帮助! 源 ...

  5. asp php微信支付,Asp微信支付接口代码 微信中生成订单后可以直接调出微信钱包直接付款_随便下源码网...

    Asp微信支付接口代码 微信中生成订单后,可以直接调出微信钱包直接付款 软件介绍: 众所周到,目前微信支付已经十分普及,无论是商场.超市.网站上,微信支付的发展十分迅速,而ASP版微信支付在微信公众平 ...

  6. java建设银行支付_cbcPayment 建设银行Java支付接口详细说明文档dsdsdds Develop 240万源代码下载- www.pudn.com...

    文件名称: cbcPayment下载  收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 4099 KB 上传时间: 2015-07-10 下载次数: 0 提 供 者: ...

  7. 服务端给手机APP写支付接口(微信)

    本文主要介绍怎么在服务端给手机APP写支付接口:以POST的方式. 需要引用第三方. using Senparc.Weixin.MP.TenPayLibV3; 整体来说就是写一个方法罢了. /// & ...

  8. java集成微信支付接口(微信V3版)

    吐槽下: 经常有人问我,你不是在某软件公司么?我听说大公司都是JAVA,对吗? 我只想回答,那是网上流传的骗人的传说,据我所知公司开发组大部分都是C#,少部分用JAVA. 这不,官方提供那个Demo就 ...

  9. java app微信支付接口_JAVA微信APP支付接口整合

    上次我们看到了支付宝的APP支付工具,那么这次就来封装封装微信的APP支付;如果已经清楚了支付宝的支付流程,那么微信支付也和它大同小异了,当然这其中肯定是有各种变化的: 首先让我把微信支付文档的官网贴 ...

最新文章

  1. jquery_jquery插件、jqueryUI使用方法、自定义jquery插件(一个插件其实就是一个功能)...
  2. (三)Lucene——Field域和索引的增删改
  3. python搞笑代码-python有趣代码
  4. Python之Pandas:利用Pandas函数实现对表格文件的查之高级查询(类似sql,分组查询等)之详细攻略
  5. ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法进行判别
  6. python矩阵对角化_numpy创建单位矩阵和对角矩阵的实例
  7. php 保存远程图片到本地
  8. 自反而缩,虽千万人,吾往矣。
  9. linux centos erlang,CentOS 7.7安装Erlang和Elixir
  10. github+hexo搭建博客(一)
  11. Windows Server 2012 MSDN原版 简体中文 版下载
  12. 如何搭建一个好的测试环境
  13. canvas实现动态小球碰撞
  14. 百度初级认证知识点小记
  15. mysql where查询字段是json,mysql json查询某字段包含a和b:
  16. 拼多多出现重大BUG,几小时内损失超千万,但处理方式让用户怒了
  17. MapReduce之week2 test 分区计算结余(练习)
  18. 秀米怎么用html模板,秀 米 模 板 不 够 用 ?
  19. BRAC模型 权限表设计
  20. LoRaWAN协议入网方式

热门文章

  1. Python opencv进行圆形识别(圆检测)
  2. IT业成为金融风暴中最脆弱三大行业之一
  3. 【调剂】985四川大学视觉合成图形图像技术国防重点学科实验室关于接收2020年调剂生参加研究生入学复试的通知...
  4. COM/DCOM开发之远程进程外组件(DCOM)
  5. 高斯贝叶斯(Gaussian Naive Bayes)基于Numpy的python实现
  6. 基于三菱运动控制系统生成丝滑无比的凸轮曲线(上)
  7. 企业公司网站模板 免费下载
  8. 机器人位置控制-P/PI+
  9. 2018迅雷校园招聘---整数求和
  10. 计算机网络相关的韩语词汇,韩语电脑类词汇