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支付(新款支付宝支付).其实这些支付原理都一样,只不过具体到每个支付平台,所使用的支付配置参数不同,返回至支付端的下单参数也不同. 话不多说,直接上代码. ...
随机推荐
- SpringCloud系列——限流、熔断、降级
前言 分布式环境下,服务直接相互调用,一个复杂的业务可能要调用多个服务,例如A -> B -> C -> D,当某个服务出现异常(调用超时.调用失败等)将导致整个流程阻塞崩溃,严重的 ...
- umeditor 上传图片 相对路径的设置和保存
此篇文章仅献给已实现百度富文本编辑器,想要设置相对路径并保存到数据库,方便以后项目迁移. 使用的版本为1.2.3,适用图片上传中点击以及拖拽功能. //保存图片相对地址的设置 //1.请 ...
- LinkedList源码分析:JDK源码分析系列
如果本文中有不正确的地方请指出由于没有留言可以在公众号添加我的好友共同讨论. 1.介绍 LinkedList 是线程不安全的,允许元素为null的双向链表. 2.继承结构 我们来看一下LinkedLi ...
- Java面试题 equals()与"=="的区别?
面试官:请问 equals() 和 "==" 有什么区别? 应聘者: equals()方法用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object ...
- Android使用WebView加载H5页面播放视频音频,退出后还在播放问题解决
Android中经常会使用到WebView来加载H5的页面,如果H5页面中有音频或者视频的播放时,还没播放完就退出界面,这个时候会发现音频或者视频还在后台播放,这就有点一脸懵逼了,下面是解决方案: 方 ...
- 【深入浅出-JVM】(4):编译 jdk
环境 mac,xcode,jdk8,openjdk,autoconf 步骤 安装autoconf brew install autoconf 下载openjdk源码 git clone https:/ ...
- Java操作文件
import java.io.File; import java.io.IOException; import java.nio.file.*; import java.nio.file.attrib ...
- 个人永久性免费-Excel催化剂功能第44波-可见区域复制粘贴不覆盖隐藏内容
Excel的复制粘贴操作,每天都在进行,若其中稍能提升一点效率,长久来说,实在是很可观的效率提升. Excel自带的复制粘贴功能,若复制的数据源或粘贴的目标位置中有隐藏的行列内容,简单一个复制粘贴充满 ...
- Shell学习心得(四):流程控制
一.if else 1. if if 语句语法格式: if condition then command1 command2 ... commandN fi 写成一行(适用于终端命令提示符): ]; ...
- cron 表达式的格式 了解
cron 表达式的格式 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别.区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cro ...