满堂花醉三千客,一剑霜寒十四州。这篇文章主要讲述java支付宝app支付-代码实现相关的知识,希望能为你提供帮助。
技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题
1.我们需要在支付宝商户平台配置好,取到四个参数如下(这是支付宝官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html
- 合作身份者ID:12345564544
- 支付宝账号:123@qq.com
- 商户的私钥 :CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
- 支付宝的公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
1 package cn.com.hanyu365.com.expand.alipay.config; 2 3 /* * 4*类名:AlipayConfig 5*功能:基础配置类 6*详细:设置帐户有关信息及返回路径 7*版本:3.3 8*日期:2012-08-10 9*说明: 10*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 11*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 12 13*提示:如何获取安全校验码和合作身份者ID 14*1.用您的签约支付宝账号登录支付宝网站(www.alipay.com) 15*2.点击“商家服务”(https://b.alipay.com/order/myOrder.htm) 16*3.点击“查询合作者身份(PID)”、“查询安全校验码(Key)” 17 18*安全校验码查看时,输入支付密码后,页面呈灰色的现象,怎么办? 19*解决方法: 20*1、检查浏览器配置,不让浏览器做弹框屏蔽设置 21*2、更换浏览器或电脑,重新登录查询。 22*/ 23 24 public class AlipayConfig2 { 25//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 26// 合作身份者ID,以2088开头由16位纯数字组成的字符串 27public static String partner = ""; 28//支付宝账号 29public static String seller_id = ""; 30// 商户的私钥存在本地不需要配置rsa_private_key_pkcs8.pem 31public static String private_key = ""; 32// 支付宝的公钥,无需修改该值查看支付宝公钥 33public static String ali_public_key= ""; 34//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 35// 调试用,创建TXT日志文件夹路径 36public static String log_path = "D:\\\\"; 37// 字符编码格式 目前支持 gbk 或 utf-8 38public static String input_charset = "utf-8"; 39// 签名方式 不需修改 40public static String sign_type = "RSA"; 41 42 }
3.配置文件写好了,就直接可以在项目中调用支付宝了工具类地址下载:www.fuzongle.com 下载完成后直接导入配置上面的四个参数即可使用。
4.下面是直接使用项目代码调用支付宝代码 (这个就是可以调用支付了非常容易了 关键工具类 我已经把工具类写好了 你们直接调用即可)
1/** 2*开通vip----支付宝支付 3* @return 4* @throws Exception 5*/ 6@RequestMapping("/openVipPay") 7public Object balanceWechat(@RequestParam(value= "https://www.songbingjia.com/android/Cn", required=true, defaultValue="https://www.songbingjia.com/android/0" )String Cn,Integer userId,HttpServletRequest request, HttpServletResponse response) throws Exception { 8Map< String, Object> hashMap = new HashMap< String, Object> (); 9//1.传入支付的金额 10Doublemoney=0.01; 11//2.随机生成一个订单号 12String 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)); 13//获取绝对路径 14String path = request.getContextPath(); 15String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //String.valueOf(findByid.getTotal_price()) 16//重点就这个调用了 工具类:传入金额 名字 订单号 回调地址 17String sign = orderPay.payInfo("名字", "描述","金额", “订单号”,basePath+"app/appOpenVip/returnUrl.do"); 18hashMap.put("data",sign); 19return new BaseJsonRep< Object> (hashMap); 20 21 22} 23 24/** 25* 支付宝回掉数据 26* @throws IOException 27*/ 28@RequestMapping(value = "https://www.songbingjia.com/returnUrl" ) 29public BaseJsonRep< Object> returnUrl(@RequestParam(value= "https://www.songbingjia.com/android/Cn", required=true, defaultValue="https://www.songbingjia.com/android/0" )String Cn,String callback, HttpServletRequest request,HttpServletResponse response) throws IOException{ 30Doublemoney=0.1; 31Map< String, String> param = new HashMap< String, String> (); 32Map< String, Object> hashMap = new HashMap< String, Object> (); 33Map< String,String[]> requestParams = request.getParameterMap(); 34param = new AlipayUtil().getParam(requestParams); 35//商户订单号 36String ORDER_NO = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8"); 37//支付宝交易号流水号 38String TRADENUM = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8"); 39//交易状态 40String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8"); 41//支付宝实际交易金额 42String PAYAMOUNT = new String(request.getParameter("total_fee").getBytes("ISO-8859-1"),"UTF-8"); 43boolean verify_result = AlipayNotify.verify(param); 44if(verify_result){ 45if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){ 46// 我们直接查询订单号 47//ORDER_NO支付成功了 可以回显订单号,去查询数据库修改支付成功,上面的代码固定即可。 48} 49} 50return null; 51} 52
推荐阅读
- 前30名最佳免费群发电子邮件服务提供商推荐合集(哪个最好())
- 新版React Native+Redux打造高质量上线App教程百度云
- 关于AndroidStudio混淆配置,简单的整理(转)
- Log4j2 - 动态生成Appender
- Java vs Kotlin,Android开发人员应该选择哪种语言()
- c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.ExitThread(); System.Environmen
- 轻量级ORM框架 第二篇(Dapper)
- Android刷量
- android课程表控件悬浮窗Todo应用MVP框架Kotlin完整项目源码