前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java支付宝API电脑网站支付

Java支付宝API电脑网站支付

作者头像
itze
发布2022-10-31 16:11:09
5170
发布2022-10-31 16:11:09
举报
文章被收录于专栏:IT者

场景

调用支付宝API,生成支付链接,或者是form表单,返回给前端页面,这里是直接生成的支付链接

准备

Jar包依赖

代码语言:javascript
复制
        <!-- AliPay Old -->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.12.4.ALL</version>
        </dependency>

方法

代码语言:javascript
复制
    /**
     * Created with IDEA
     * Author: www.itze.cn
     * Email:gitlab@111.com
     */
    public static String createPayUrl(String orderNumber, String titleName, String amout, String orderDesc) {
        /** 支付宝网关 **/
        String URL = "支付宝网关"

        /** 应用id,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/190/201602493024 **/
        String APP_ID = "改成你的AppID"

        /** 应用私钥,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602469554 **/
        String APP_PRIVATE_KEY = "改成你的应用私钥";

        /** 支付宝公钥,如何获取请参考:https://opensupport.alipay.com/support/helpcenter/207/201602487431 **/
        String ALIPAY_PUBLIC_KEY = "改成你的应用公钥";

        /** 初始化 **/
        AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, "json", "UTF-8", ALIPAY_PUBLIC_KEY, "RSA2");
        /** 实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.page.pay(电脑网站支付) **/
        AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest();
        /** 设置业务参数  **/
        AlipayTradePagePayModel model = new AlipayTradePagePayModel();
        /** 商户订单号,商户自定义,需保证在商户端不重复,如:20200612000001 **/
        model.setOutTradeNo(orderNumber);

        /** 销售产品码,固定值:FAST_INSTANT_TRADE_PAY **/
        model.setProductCode("FAST_INSTANT_TRADE_PAY");

        /**订单标题 **/
        model.setSubject(titleName);

        /** 订单金额,精确到小数点后两位 **/
        model.setTotalAmount(amout);

        /** 订单描述 **/
        model.setBody(orderDesc);

        /** 业务扩展参数 **/
        //ExtendParams extendParams = new ExtendParams();
        /** 花呗分期参数传值前提:必须有该接口花呗收款准入条件,且需签约花呗分期 **/
        /** 指定可选期数,只支持3/6/12期,还款期数越长手续费越高 **/
        // extendParams.setHbFqNum("3");
        /** 指定花呗分期手续费承担方式,手续费可以由用户全承担(该值为0),也可以商户全承担(该值为100),但不可以共同承担,即不可取0和100外的其他值。 **/
        //extendParams.setHbFqSellerPercent("0");
        //model.setExtendParams(extendParams);

        /** 将业务参数传至request中 **/
        alipayRequest.setBizModel(model);
        /** 注:支付结果以异步通知为准,不能以同步返回为准,因为如果实际支付成功,但因为外力因素,如断网、断电等导致页面没有跳转,则无法接收到同步通知;**/
        /** 同步通知地址,以http或者https开头,支付完成后跳转的地址,用于用户视觉感知支付已成功,传值外网可以访问的地址,如果同步未跳转可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602474937 **/
        String returnUrl = "可以是一个自己的外网可以访问的页面,也可以为空,用于支付完成后页面跳转";

        alipayRequest.setReturnUrl(returnUrl);
        /** 异步通知地址,以http或者https开头,商户外网可以post访问的异步地址,用于接收支付宝返回的支付结果,如果未收到该通知可参考该文档进行确认:https://opensupport.alipay.com/support/helpcenter/193/201602475759 **/
        String notifyUrl = "异步通知地址";

        alipayRequest.setNotifyUrl(notifyUrl);
        /** 第三方调用(服务商模式),传值app_auth_token后,会收款至授权app_auth_token对应商家账号,如何获传值app_auth_token请参考文档:https://opensupport.alipay.com/support/helpcenter/79/201602494631 **/
        //request.putOtherTextParam("app_auth_token", "传入获取到的app_auth_token值");
        String form = null;
        try {
            /** 调用SDK生成表单form表单 **/
//            form = alipayClient.pageExecute(alipayRequest).getBody();
            /** 调用SDK生成支付链接,可在浏览器打开链接进入支付页面 **/
            form = alipayClient.pageExecute(alipayRequest, "GET").getBody();
        } catch (AlipayApiException e) {
            e.printStackTrace();
        }

        /** 获取接口调用结果,如果调用失败,可根据返回错误信息到该文档寻找排查方案:https://opensupport.alipay.com/support/helpcenter/97 **/
//        System.out.println(form);
//        response.setContentType("text/html;charset=" + "utf-8");

        /** 直接将完整的表单html输出到页面 **/
//        response.getWriter().write(form);
//        response.getWriter().flush();
        return form;
    }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年7月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 场景
  • 准备
  • 方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档