• 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        
  • 相关阅读:
    PostgreSQL中的partition-wise join
    Partition-wise join
    外观模式 门面模式 Facade 结构型 设计模式(十三)
    桥接模式 桥梁模式 bridge 结构型 设计模式(十二)
    组合模式 合成模式 COMPOSITE 结构型 设计模式(十一)
    创建型设计模式对比总结 设计模式(八)
    原型模式 prototype 创建型 设计模式(七)
    单例模式 创建型 设计模式(六)
    建造者模式 生成器模式 创建型 设计模式(五)
    抽象工厂模式 创建型 设计模式(四)
  • 原文地址:https://www.cnblogs.com/fuzongle/p/10217586.html
Copyright © 2020-2023  润新知