创建应用

进入支付宝开发管理页面:https://open.alipay.com/platform/developerIndex.htm
image.pngimage.png

开发测试使用沙箱

视频教程:https://www.bilibili.com/video/BV1np4y1C7Yf?p=301
沙箱环境:https://openhome.alipay.com/platform/appDaily.htm?tab=info
使用支付宝扫描登录,每个支付宝账户都有一个沙箱应用,直接使用这个沙箱应用测试即可。
image.png

生成RSA2密钥

https://miniu.alipay.com/keytool/create
image.png
私钥:

  1. MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCIjm59tWgN2IQK5HVhFw0nRX/kg8V8KFxMHoKcHe+NXfnuvGYG9AghJC/zOJEZgQQBw9xelVG3LVMCNVaZOF19E83qkQkPR4+ZwhZop+NNd5yNP7+PJJMc0LH1xpPGOwr5gQDpKMbS2COF/J2G2299VeKvmRkXHHMwgmmM2DI1T4hiEX8AY8fLu2Q8abZJA0djSmOVmkehCYqm7HilFRvFVw9AT25kMVNTQxQPvKYOTt82Ij1VeMYPnTuj6l+6oBnqpgy9XiBPTRsRDG6F6R4rLYTs2T462eOoVy9U5tG632EiNYT1hQafczRv3SPYa5xs+i/zO9yVyJG6Vl6xaw2lAgMBAAECggEAMJHoftHdFr+iB3XGwie+x+8SVCcCQOziFzjq37hOEgwQ73cXGvYFRjRm0a2W/mlDEZWmdgXKMMrwMWLjUFAaAHjgzsOTY1nim5/K9KJyWIVoq1y3N6Scpq0b/v0IZoNtndzihAu63BeAWxHEvcii2QOJQ0fDAtNdrS1VeYEUKp1/rdD4ke+j1xNsw6vqZq1dly7D7AknKn4mLw0wE4jc3OJtU8fL8VNupBx2vIdr/FZlSGm0Z/SG2VIVGnEQPSlETNtWgbK3ORd3V9Wtc7eG3E13qvm+1iiWv2W7Gi9FbIYUg8SyJQ9qsrfYdK9Ua+I8+S28ZL5JuEhZqAjrI6ti6QKBgQDMbQ+P0dKvjeTjJ81UNvg6f3AQ0F8aqdT0euOLharZXCnYU7SW5x3pF2Va/KjCexVSESBwkC1ytrE4eJmouRQ7Q8Rbj5aD6CSzQutfpdqmL5bUTC8NVAr2InCnk9zNtT2pQkOKgaJDe8BIxqaNsosM6IgKWxE7JB2+A+pTc1S2owKBgQCrAftL84uEoU19Sl+Py3Nm+9Wh938wACyxnWb3nSzipaGxEX5P/0pIkRl1PHrJ22AEEz+k0gYKKYiYTflU0iE257nJ/NnEB5TRru2JVfPzZ6yF95BoCMtQzd+82A3dJYIT19lQEwD3b6tUbWfGi4uMHoV1aMfqZ6aLZnEa2mIXFwKBgHn+Y5kKOFb3sK42pHwrSbtvLat7DiZVT3aOl5g9rpWEQJyOZ2jeh6UAh0XjHbrhxPlyqw9Bmz2n9N6kad6chIxRhq61Y7dYI/6uYtRzn6YpJDORO0sS6m+0YdI/lTdVf3SwzKmtbu4ivb8wfVh2QjDz26uCaSgIB4/Lul0OqHFNAoGAA6vcOEo3QZaw8jKpkI2+oYRglsSYf3BRhVKqxkAimY8SxJlqi88gSiSLVmABBtpl2lCLej9kD83Kd/KcmryUJ/ibnYGHL1U2VbYatWsZ/KzKIGorOICP1OFGn2hIC+plO4XTzYtK5wUHuZ1LsBCI4244UUf5mse05KNDZF8x4esCgYEApvTD21gPICcBpY1ZubrFPCatD8nqr20ZGXcNp0pFFNK0wxSN+qRt4Mw68PO30OAYJBZDbSqFS38weGkgkZgY1BXpYVT4WmFU4ofCM9W1GUP0xvkhCNdZEeGZqJ6ZR7gq2ZtbpZTV70ClURHNb96xZPx6UVKHK/vnFnjy4+UNgac=

公钥

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiI5ufbVoDdiECuR1YRcNJ0V/5IPFfChcTB6CnB3vjV357rxmBvQIISQv8ziRGYEEAcPcXpVRty1TAjVWmThdfRPN6pEJD0ePmcIWaKfjTXecjT+/jySTHNCx9caTxjsK+YEA6SjG0tgjhfydhttvfVXir5kZFxxzMIJpjNgyNU+IYhF/AGPHy7tkPGm2SQNHY0pjlZpHoQmKpux4pRUbxVcPQE9uZDFTU0MUD7ymDk7fNiI9VXjGD507o+pfuqAZ6qYMvV4gT00bEQxuhekeKy2E7Nk+OtnjqFcvVObRut9hIjWE9YUGn3M0b90j2GucbPov8zvclciRulZesWsNpQIDAQAB

复制应用公钥,点击保存,获取支付宝公钥
image.png
image.png
将沙箱应用APPID和生成的商户密钥和支付宝公钥配置到系统中

然后直接调用支付宝sdk接口。可以下载支付宝demo测试,如果项目中有使用支付宝,也可以使用你项目中的代码测试。

/***
     * 生成支付宝表单页面
     * @param tradeVo
     * @param returnUrl 支付宝同步回调地址
     * @param prefix 用于支付宝保存订单的前缀
     * @return
     */
    public static String payForm(TradeVo tradeVo,String notifyUrl, String returnUrl, String prefix, String appId,String privateKey ,String aliPayPublicKey){

        String out_trade_no = prefix + tradeVo.getTradeId().toString() + "_" + System.currentTimeMillis(); // 商户订单号,商户网站订单系统中唯一订单号,必填
        String subject = tradeVo.getSubject();                  // 订单名称,必填
        String total_amount=tradeVo.getAmount().setScale(2, BigDecimal.ROUND_HALF_UP).toString();     // 付款金额,必填
        String body = "";                                       // 商品描述,可空
        String timeout_express="30m";                           // 超时时间 可空

        // SDK 公共请求类,包含公共请求参数,以及封装了签名与验签,开发者无需关注签名与验签
        //调用RSA签名方式
        AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.GATEWAY,
                appId, privateKey, "json", "UTF-8", aliPayPublicKey, AlipayConfig.SIGNTYPE); // /*AlipayConfig.ALIPAY_PUBLIC_KEY*/

        // 移动端封装请求支付信息
        String product_code="QUICK_WAP_PAY";   //销售产品码 必填
        AlipayTradeWapPayRequest alipay_request=new AlipayTradeWapPayRequest();
        AlipayTradeWapPayModel model=new AlipayTradeWapPayModel();
        model.setOutTradeNo(out_trade_no);
        model.setSubject(subject);
        model.setTotalAmount(total_amount);
        model.setBody(body);
        model.setTimeoutExpress(timeout_express);
        model.setProductCode(product_code);
        alipay_request.setBizModel(model);
        alipay_request.setNotifyUrl(notifyUrl);// 设置异步通知地址,支付成功后支付宝回掉通知地址
        alipay_request.setReturnUrl(returnUrl);// 设置同步地址,支付后页面跳转的地址
        // form表单生产
        String form = "";
        try {
            // 调用SDK生成表单
            form = alipayClient.pageExecute(alipay_request).getBody();
            System.out.println("form:" + form);
        } catch (AlipayApiException e) {
            throw new ServiceException(e.getMessage());
        }
        return form;
    }