java接入支付宝杀箱

1、地址: 登录 - 支付宝

2、引入sdk

<dependency>
   <groupId>com.alipay.sdk</groupId>
   <artifactId>alipay-sdk-java</artifactId>
   <version>4.10.218.ALL</version>
</dependency>

3、下载工具包:https://opendocs.alipay.com/common/02kipk

4、生成密钥

5、保存应用私钥到代码里面

6、复制应用公钥到支付宝沙箱 网址:登录 - 支付宝

得到 支付宝公钥 复制到代码里面。JI


    /**
     * 应用私钥
     */
    private String APP_PRIVATE = "XXXX";

    /**
     * 支付宝公钥
     */
    private String ALI_PUBLIC = "XXX";

    /**
     * appId
     */
    private String APP_ID="XXX";

继续编写上面的基本配置类

    /**
     * 应用私钥
     */
    private String APP_PRIVATE = "xxx";

    /**
     * 支付宝公钥
     */
    private String ALI_PUBLIC = "xxx";

    /**
     * appId
     */
    private String APP_ID="xxx";

    /**
     * 签名算法
     */
    private String SIGN_TYPE="RSA2";

    /**
     * 编码
     */
    private String CHAT_SET="UTF-8";

 新建


@Configuration
@Data
public class PayUrlConfig {
    
    private String callBack="http://baidu.com";
    private String SuccessURL="http://baidu.com";


}

 完整配置类ceshi

package com.itlin.link.shop.pay;

import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import org.springframework.stereotype.Component;

@Component
public class AliPayConfig {

    /**
     * 应用私钥
     */
    private static final String APP_PRIVATE = "xxxx";

    /**
     * 支付宝公钥
     */
    private static final String ALI_PUBLIC = "xxxx";

    /**
     * appId
     */
    private static final String APP_ID="xxxx";

    /**
     * 支付宝网关
     */
    private static final String PAY_GATEWAY="https://openapi-sandbox.dl.alipaydev.com/gateway.do";

    /**
     * 签名算法
     */
    private static final String SIGN_TYPE="RSA2";

    /**
     * 编码
     */
    private static final String CHAT_SET="UTF-8";

    /**
     * 返回参数格式
     */
    public static final  String FORMAT="json";

    private volatile static AlipayClient instance = null;

    /**
     * 单例模式获取, 双重锁校验
     * @return
     */
    public static AlipayClient getInstance(){

        if(instance==null){
            synchronized (AliPayConfig.class){
                if(instance == null){
                    instance = new DefaultAlipayClient(PAY_GATEWAY,APP_ID,APP_PRIVATE,FORMAT,CHAT_SET,ALI_PUBLIC,SIGN_TYPE);
                }
            }
        }
        return instance;
    }



}

测试案例

    /**
     * 测试支付方法
     */
    @GetMapping("test_pay")
    public void testAlipay(HttpServletResponse response) throws AlipayApiException, IOException {

        HashMap<String,String> content = new HashMap<>();
        //商户订单号,64个字符以内、可包含字母、数字、下划线;需保证在商户端不重复
        String no = UUID.randomUUID().toString();

        log.info("订单号:{}",no);
        content.put("out_trade_no", no);

        content.put("product_code", "FAST_INSTANT_TRADE_PAY");

        //订单总金额,单位为元,精确到小数点后两位
        content.put("total_amount", String.valueOf("111.99"));

        //商品标题/交易标题/订单标题/订单关键字等。 注意:不可使用特殊字符,如 /,=,&amp; 等。
        content.put("subject", "杯子");

        //商品描述,可空
        content.put("body", "好的杯子");

        // 该笔订单允许的最晚付款时间,逾期将关闭交易。取值范围:1m~15d。m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点, 如 1.5h,可转换为 90m。
        content.put("timeout_express", "5m");


        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
        request.setBizContent(JSON.toJSONString(content));
        request.setNotifyUrl("http://baidu.com");
        request.setReturnUrl("http://baidu.com");

        AlipayTradeWapPayResponse alipayResponse  = AliPayConfig.getInstance().pageExecute(request);

        if(alipayResponse.isSuccess()){
            System.out.println("调用成功");

            String form = alipayResponse.getBody();

            response.setContentType("text/html;charset=UTF-8");
            response.getWriter().write(form);
            response.getWriter().flush();
            response.getWriter().close();

        } else {
            System.out.println("调用失败");
        }
    }

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值