zoukankan      html  css  js  c++  java
  • java支付宝app支付-代码实现

    技术交流QQ群:422167709 想学习的朋友可以进入,各路IT大牛帮忙解决问题

    1.我们需要在支付宝商户平台配置好,取到四个参数如下(这是支付宝官方配置地址):https://www.cnblogs.com/fuzongle/p/10217144.html

    1. 合作身份者ID:12345564544
    2. 支付宝账号:123@qq.com
    3. 商户的私钥 :CSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE
    4. 支付宝的公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCzzICE

    2.我们在项目中配置工具类上面四个号码,写到工具类中

     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位纯数字组成的字符串
    27     public static String partner = "";
    28     //支付宝账号
    29     public static String seller_id = "";
    30     // 商户的私钥  存在本地  不需要配置  rsa_private_key_pkcs8.pem
    31     public static String private_key = "";
    32     // 支付宝的公钥,无需修改该值    查看支付宝公钥
    33     public static String ali_public_key  = "";
    34     //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
    35     // 调试用,创建TXT日志文件夹路径
    36     public static String log_path = "D:\";
    37     // 字符编码格式 目前支持 gbk 或 utf-8
    38     public static String input_charset = "utf-8";
    39     // 签名方式 不需修改
    40     public static String sign_type = "RSA";
    41 
    42 }

    3.配置文件写好了,就直接可以在项目中调用支付宝了工具类地址下载:www.fuzongle.com 下载完成后直接导入配置上面的四个参数即可使用。

    4.下面是直接使用项目代码调用支付宝代码 (这个就是可以调用支付了非常容易了 关键工具类 我已经把工具类写好了 你们直接调用即可)

     1      /** 
     2       *开通vip----支付宝支付
     3       * @return
     4      * @throws Exception 
     5       */
     6     @RequestMapping("/openVipPay")
     7     public Object balanceWechat(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,Integer userId,HttpServletRequest request, HttpServletResponse response) throws Exception {
     8          Map<String, Object> hashMap = new HashMap<String, Object>();
     9             //1.传入支付的金额
    10             Double     money=0.01;
    11             //2.随机生成一个订单号
    12             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));    
    13             //获取绝对路径
    14               String path = request.getContextPath();  
    15               String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; //String.valueOf(findByid.getTotal_price())
    16             //重点就这个调用了 工具类:传入金额 名字 订单号 回调地址                                                    
    17               String sign = orderPay.payInfo("名字", "描述","金额", “订单号”,basePath+"app/appOpenVip/returnUrl.do");
    18               hashMap.put("data",sign);
    19               return new BaseJsonRep<Object>(hashMap);
    20             
    21     
    22     }
    23     
    24          /**
    25       * 支付宝回掉数据
    26       * @throws IOException
    27       */
    28      @RequestMapping(value = "/returnUrl" )
    29      public BaseJsonRep<Object> returnUrl(@RequestParam(value= "Cn", required=true, defaultValue="0" )String Cn,String callback, HttpServletRequest request,HttpServletResponse response) throws IOException{
    30             Double     money=0.1;
    31            Map<String, String> param = new HashMap<String, String>();
    32           Map<String, Object> hashMap = new HashMap<String, Object>();
    33                Map<String,String[]> requestParams = request.getParameterMap();
    34                param = new AlipayUtil().getParam(requestParams);
    35               //商户订单号
    36               String ORDER_NO = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
    37               //支付宝交易号  流水号
    38               String TRADENUM = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
    39               //交易状态
    40               String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
    41               //支付宝实际交易金额
    42               String PAYAMOUNT = new String(request.getParameter("total_fee").getBytes("ISO-8859-1"),"UTF-8");
    43               boolean verify_result = AlipayNotify.verify(param);
    44              if(verify_result){
    45                  if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){
    46                     // 我们直接查询订单号
    47                      //ORDER_NO  支付成功了 可以回显订单号,去查询数据库修改支付成功,上面的代码固定即可。
    48                  }
    49                }
    50             return null;
    51        }
    52        
  • 相关阅读:
    linux常用网络命令
    linux常用命令
    内核驱动——符号表的导出
    内核模块传参
    *** No rule to make target 'param'. Stop. 的问题
    mmap操作荔枝派gpio v3s Linux
    交叉编译 -sh: ./xxx: not found 的问题
    linux驱动 第一个驱动
    ubuntu 16.04 开机脚本
    V3s录音 交叉编译alsa linux
  • 原文地址:https://www.cnblogs.com/fuzongle/p/10217586.html
Copyright © 2011-2022 走看看