zoukankan      html  css  js  c++  java
  • app支付宝快速入门

    最近在做个车辆认证app,需要用到支付宝付款.前端使用H5,框架是react,后台是java。app支付与普通网页支付差别还是很大,我这里主要对于app支付做说明

    1.让财务开通支付宝账号(需要企业税号,营业执照,财务身份证,等信息)
    2.开通之后由于一直麻烦财务操作不方便,让财务登录支付宝账号后,将企业账号设置成主账号,将自己的支付宝账号设置为绑定企业的子账号的开发管理员,方便后续操作
    3.创建app应用,该过程需要阿里审核,说是3天,我当时2小时就通过了。
    4.通过软件生成公钥,私钥,创建app应用的时候会有appid
    5.导入支付宝jar,编写后台代码,将加密后的一大串字符串返回给前端,前端用codva的支付宝插件,直接拼接这个字符串就可以调用支付宝了
    6.支付宝上配置回调接口.
    大致这么操作下面具体说明
    

    1.申请支付宝账号后登陆

     
    image.png

    2.如何设置开发者管理员

     
    image.png
     
    image.png
     
    image.png
     
    image.png

    3.然后点击页面上的开发者中心,选中自己的

     
    image.png
     
    image.png

    4.进入之后查看app支付是否开通

     
    image.png

    如果要开通app应用支付请点击支付接入

     
    image.png
     
    image.png

    支付宝网关是固定的,如果是沙箱环境就改成https://openapidev.alipay.com/gateway.do

     
    image.png

    如何生成私钥公钥,请点击

    5.java后端代码编写,当前端调用后端接口后将后台的订单以及支付宝生成的url传到前端,前端需要这个url调用支付宝接口

     
    image.png

    我遇到的坑

     
    image.png


    我按照上面3步,自己解析了一下午,终于完成了,然后无意中发现支付宝一个sdk一句话就完成了,不过这个过程中把md5加密,URLEncode编码,java基础练了下- -

    public static void main(String[] args) {
            //签名方式
            String sign_type="RSA2";
            //编码格式
            String CHARSET="utf-8";
            //正式环境支付宝网关,如果是沙箱环境需更改成https://openapi.alipaydev.com/gateway.do
            String url="https://openapi.alipay.com/gateway.do";
            //实例化客户端
            AlipayClient alipayClient = new DefaultAlipayClient(url, APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY,sign_type);
            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay
            AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
            //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。
            AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
            model.setBody("我是测试数据");
            model.setSubject("1");
            //请保证OutTradeNo值每次保证唯一
            model.setOutTradeNo("IQJZSRC1YMQB5HU");
            model.setTimeoutExpress("30m");
            model.setTotalAmount("0.01");
            model.setProductCode("QUICK_MSECURITY_PAY");
            request.setBizModel(model);
            request.setNotifyUrl("你的回调地址");
            try {
                //这里和普通的接口调用不同,使用的是sdkExecute
                AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);
                System.out.println(response.getBody());//就是orderString 可以直接给客户端请求,无需再做处理。
            } catch (AlipayApiException e) {
                e.printStackTrace();
            }
        }
    
     
    image.png

    另外看过一些相关有用的支付宝连接供参考:app支付宝服务端demo
    app支付客户端demo
    异步回调通知
    通知参数说明

    原文链接:

    http://www.jianshu.com/p/6e02a0c44fbc


    关注我的公众号,都是满满的干货!
  • 相关阅读:
    背景qwq
    关于Oracle数据库空表无法导出问题
    Linux 备份 Oracle11g 数据库
    Linux Tomcat安装
    Linux JDK安装
    Oracle 监听与服务器
    Xftp强制更新
    Linux 安装 Oracle11g 数据库
    Vue 动态获取组件与动态路由获取组件
    Linux 防火墙
  • 原文地址:https://www.cnblogs.com/springboot/p/8052105.html
Copyright © 2011-2022 走看看