java支付宝app支付-代码实现
技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题
1.我们需要在支付宝商户平台配置好,取到四个参数如下(这是支付宝官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html
- 合作身份者ID:12345564544
- 支付宝账号:123@qq.com
- 商户的私钥 :CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
- 支付宝的公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
2.我们在项目中配置工具类上面四个号码,写到工具类中
package cn.com.hanyu365.com.expand.alipay.config; /* *
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*版本:3.3
*日期:2012-08-10
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 *提示:如何获取安全校验码和合作身份者ID
*1.用您的签约支付宝账号登录支付宝网站(www.alipay.com)
*2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm)
*3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)” *安全校验码查看时,输入支付密码后,页面呈灰色的现象,怎么办?
*解决方法:
*1、检查浏览器配置,不让浏览器做弹框屏蔽设置
*2、更换浏览器或电脑,重新登录查询。
*/ public class AlipayConfig2 {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 合作身份者ID,以2088开头由16位纯数字组成的字符串
public static String partner = "";
//支付宝账号
public static String seller_id = "";
// 商户的私钥 存在本地 不需要配置 rsa_private_key_pkcs8.pem
public static String private_key = "";
// 支付宝的公钥,无需修改该值 查看支付宝公钥
public static String ali_public_key = "";
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
// 调试用,创建TXT日志文件夹路径
public static String log_path = "D:\\";
// 字符编码格式 目前支持 gbk 或 utf-8
public static String input_charset = "utf-8";
// 签名方式 不需修改
public static String sign_type = "RSA"; }
3.配置文件写好了,就直接可以在项目中调用支付宝了工具类地址下载:www.fuzongle.com 下载完成后直接导入配置上面的四个参数即可使用。
4.下面是直接使用项目代码调用支付宝代码 (这个就是可以调用支付了非常容易了 关键工具类 我已经把工具类写好了 你们直接调用即可)
/**
*开通vip----支付宝支付
* @return
* @throws Exception
*/
@RequestMapping("/openVipPay")
public Object balanceWechat(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,Integer userId,HttpServletRequest request, HttpServletResponse response) throws Exception {
Map<String, Object> hashMap = new HashMap<String, Object>();
//1.传入支付的金额
Double money=0.01;
//2.随机生成一个订单号
String ORDER_NO = "JYJY"+new SimpleDateFormat("yy").format(new Date()) + String.valueOf(System.currentTimeMillis()/1000).substring(7,10)+String.valueOf((int) ((Math.random() * 9 + 1) * 10000));
//获取绝对路径
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //String.valueOf(findByid.getTotal_price())
//重点就这个调用了 工具类:传入金额 名字 订单号 回调地址
String sign = orderPay.payInfo("名字", "描述","金额", “订单号”,basePath+"app/appOpenVip/returnUrl.do");
hashMap.put("data",sign);
return new BaseJsonRep<Object>(hashMap); } /**
* 支付宝回掉数据
* @throws IOException
*/
@RequestMapping(value = "/returnUrl" )
public BaseJsonRep<Object> returnUrl(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,String callback, HttpServletRequest request,HttpServletResponse response) throws IOException{
Double money=0.1;
Map<String, String> param = new HashMap<String, String>();
Map<String, Object> hashMap = new HashMap<String, Object>();
Map<String,String[]> requestParams = request.getParameterMap();
param = new AlipayUtil().getParam(requestParams);
//商户订单号
String ORDER_NO = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
//支付宝交易号 流水号
String TRADENUM = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
//交易状态
String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
//支付宝实际交易金额
String PAYAMOUNT = new String(request.getParameter("total_fee").getBytes("ISO-8859-1"),"UTF-8");
boolean verify_result = AlipayNotify.verify(param);
if(verify_result){
if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){
// 我们直接查询订单号
//ORDER_NO 支付成功了 可以回显订单号,去查询数据库修改支付成功,上面的代码固定即可。
}
}
return null;
}
java支付宝app支付-代码实现的更多相关文章
- 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)
java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写 一.流程步骤 1.执行流程 当手机端app(就是你公司开发的app)在支付 ...
- 支付宝APP支付IOS手机端java后台版
版权声明:http://blog.csdn.net/u012131769/article/details/76639527#t8 转载:http://blog.csdn.net/u012131769/ ...
- 支付宝APP支付之Java后台生成签名具体步骤
/** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...
- Android版-支付宝APP支付
此项目已开源 赶快来围观 Start支持下吧 [客户端开源地址-JPay][服务端端开源地址-在com.javen.alipay 包名下] 上一篇详细介绍了微信APP支付 点击这里 此篇文章来详细介绍 ...
- 支付宝APP支付开发- IOException : DER input, Integer tag error
支付宝APP支付Java开发报错: 1 java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: I ...
- 支付宝APP支付开发- IOException : DerInputStream.getLength(): lengthTag=127, too big.
支付宝APP支付Java开发报错: IOException : DerInputStream.getLength(): lengthTag=127, too big. 后来排查是因为没有设置私钥.
- 支付宝app支付服务端流程
支付宝APP支付服务端详解 前面接了微信支付,相比微信支付,支付宝APP支付提供了支付封装类,下面将实现支付宝APP支付.订单查询.支付结果异步通知.APP支付申请参数说明,以及服务端返回APP端发起 ...
- 微信、支付宝App支付-JPay0.0.2发布
JPay 对微信App支付.支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调 GitHub:https://github.com/Javen205/JPay OsChina:h ...
- .Net后台实现支付宝APP支付
前面讨论了微信支付,接下来聊聊支付宝的APP支付(新款支付宝支付).其实这些支付原理都一样,只不过具体到每个支付平台,所使用的支付配置参数不同,返回至支付端的下单参数也不同. 话不多说,直接上代码. ...
随机推荐
- 一文看懂Python的面向对象编程
之前在网络上看了很多关于面向对象的编程详解,还是不够过瘾,所以决定自己动手写一篇. 面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计. 类(Class) ...
- HDU 1561:The more, The Better(有依赖的树型背包)
http://acm.hdu.edu.cn/showproblem.php?pid=1561 题意:有n个点,容量为m,每个点有一个价值,还给出n条边,代表选第i个点之前必须先选ai,问最多的价值能取 ...
- 鼠标滑至某位置,在鼠标旁边出现详情弹窗div
首先效果如下: 代码如下: //这个是一个循环,循环所有name为xx的td标签(也就是给tdname为XXX的添加事件)$("td[name='strGoodsSKU']").e ...
- EnjoyingSoft之Mule ESB开发教程第一篇:初识Mule ESB
目录 1. Mule ESB基本介绍 2. Mule ESB社区版和企业版 3. Mule ESB常用场景 4. Mule ESB软件安装 客户端安装 服务端安装 5. 第一个Mule ESB应用- ...
- MyBatis从入门到精通:第一章配置文件log4j.properties
配置文件: #全局配置 log4j.rootLogger=ERROR,stdout #MyBatis日志配置 log4j.logger.tk.mybatis.simple.mapper=TRACE # ...
- linux 安装命令 nginx 部署
[TOC] # 安装anocanda wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh安装:bash A ...
- acm 模板
Index 分类细则 说起分类准则,我也是很头疼,毕竟对于很多算法,他并不是单调的,而是多方面的都挂得上钩.所以,从始至终,分类准则一直都是我很纠结的问题. 经过思量,首先分出比较主流的几类:Numb ...
- cve-2018-2893 WebLogic
最近爆出来了新的漏洞cve-2018-2893 一.背景介绍 WebLogic是美国Oracle公司出品的一个Application Server,确切的说是一个基于JAVAEE架构的中间件,WebL ...
- 【Gym - 100923A】Por Costel and Azerah(思维水题)
Por Costel and Azerah Descriptions 给你n个数 问你,有多少个子序列 的和是偶数 Example Input 233 10 124 2 Output 33 题目链接 ...
- C#3.0新增功能08 Lambda 表达式
连载目录 [已更新最新开发文章,点击查看详细] Lambda 表达式是作为对象处理的代码块(表达式或语句块). 它可作为参数传递给方法,也可通过方法调用返回. Lambda 表达式广泛用于: 将 ...