有道无术,术尚可求,有术无道,止于术。
文章目录
- 前言
- 接入指南
- 1. 创建应用
- 2. 绑定应用
- 3. 配置密钥
- 4. 上线应用
- 5. 开通产品
 
- 沙箱环境
- 开发前准备(沙箱环境)
- 1. 获取参数、秘钥、证书
- 2. 下载支付宝客户端
- 3. 案例演示
 
 
前言
在之前,我们基本完成了微信支付的对接,那么接下来集成支付宝就比较简单了,大同小异
对接支付宝,所有能力在其开放平台查看。

 在网页/移动应用开发接入中,可以在网页、移动端、线下支付等场景中唤起支付宝进行支付。
 
开发文档、工具、API都可以在当前页查看。
 
 接入简要流程:
 
接入指南
官方指南中,详细记录了企业用户接入时的操作步骤。下面简单汇总介绍下。
 
1. 创建应用
开发者使用支付宝账号登录 开放平台控制台(需实名认证的支付宝账号)创建一个应用。
在创建应用后,开放平台会为应用生成应用唯一标识APPID、,通过APPID才能调用开放产品的接口能力。
 
2. 绑定应用
支付宝的开放业务存在三种角色类型:
- 开发者角色:需要开发者账号,一般登录支付宝 开放平台 完成应用开发相关操作。
- 商家角色:需要商家账号,一般登录 商家服务平台 开通支付服务并完成商家经营相关操作。
- 服务商角色:需要服务商账号,一般登录 服务商平台 完成协助商家开通产品等操作。
三种角色的账号都可通过注册实名认证的支付宝账号登录相应平台完成开通。
由于应用在支付宝开放平台创建,因此APPID归属于对应开发者账号。如果要在应用中使用支付和资金等相关的产品,必须完成应用APPID同商家账号PID的绑定,通过账号关联可实现将商家开通的产品授权给应用APPID,应用即可调用需要商家开通的产品(例如当面付、转账到支付宝账户等)。
操作流程可分为普通商家发起绑定和服务商代商家发起绑定两种类型,请根据自身需求及角色选择对应方式绑定应用。
登录 商家平台 【 账号中心 > 绑定 > APPID绑定】,点击 添加绑定。

3. 配置密钥
在接口调用前,您需要在支付宝开放平台配置接口加签方式。

4. 上线应用
开发者 创建应用 并完成配置后,可点击 提交审核,预计会有 1 个工作日的审核时间。
应用上线成功后,状态将变为 已上线,该状态下的应用能够在生产环境(正式环境)中调用接口。
5. 开通产品
自研型应用需要在应用上线后才可以开通产品。

沙箱环境
沙箱环境又称测试环境和开发环境,是提供给开发者开发和测试用的环境。是支付宝开放平台为开发者提供的与生产环境完全隔离的联调测试环境,开发者在沙箱环境中完成的接口调用不会对生产环境中的数据造成任何影响。
沙箱环境会提供一个沙箱版的支付宝app、商家账户、买家账户。可以跳过商家入驻、企业资质审核等过程。接入微信、支付宝支付,都需要营业执照等信息,如果没有,就可以使用沙箱环境进行测试。
按照官方详细文档地址操作即可。
 
开发前准备(沙箱环境)
1. 获取参数、秘钥、证书
在上面的接入指南中,可以参考官网文档,正式接入支付宝支付,然后获取到对应的参数、秘钥、证书,这里使用沙箱环境获取。
打开沙箱环境获取基本信息。
 
 开发信息中,点击证书模式的启用,然后点击查看。

将公钥、私钥、证书都可以下载下来。
 
2. 下载支付宝客户端
调试过程中需要支付宝APP支持的功能,请使用沙箱提供的 Android 支付宝沙箱版。参考官方文档操作即可。
 
 下载完成后,使用提供的账号密码登录即可。

3. 案例演示
首先添加官方SDK。
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.34.0.ALL</version>
        </dependency>
示例代码:
        // 公钥证书中获取公钥
        String alipayPublicKey = AlipaySignature.getAlipayPublicKey("E:\\pearl-demo\\pearl-pay-demo\\src\\main\\resources\\alipayPublicCert.crt");
        AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",
        		// 商户号
                "2021000122611301",
                // 私钥                
                "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCRgk9JYxwLDDKHP/PlmHGpNmfrIox7HG8UJip02UvrJav32bINE37Oo80iF2T17ASjKAJubNWPeuSiUmNDPAbxJlaGlmmn4V7yvYHA/7Q8BIxDUb5WoxZlpxnaSW5GQOmZGZ6Wj/VWuLox+H1QDQEDmohM/GiCWagdDnn9pn583F7cwTpGWP9l4EZZFH/987wOR8K8SRSLPHvRaVSmchRpyY8w261kYFxt92S2n5NyyzSHoRVF4uoxWopmTta+Tzn9xHP/wGKG1keTCDx8XC1gCHXave3LUffufQvFwfxCEnDgKyHPG0Q1A2IfNbDx3t9woJVXuKY/KOu2K/8QinCLAgMBAAECggEAQAcdKGfKITpeyZDkm7T23sSn+ZmcQ1gBsNYSfJRZicFr6IYMiSB4/iipzUSKEoSmjby/RSPy3U3waVTjhORXEaoTDOoG1+6dvyaQgAKEppxBtCW2IZ1l75kWES2arqNFpy7Uz9/Mzzo+BFsZmS3/sjw/mdC/lAwro42JNIocwofxKnOofAkl0eV76mt0tmCa7Rqxg2DV3t/llDzwbGS18EhP94yI6tUu589fq2BuzblvmWnnLKf80llnJN6DW7fyzpMZJugbOwzxsjm81lLyrTksJwLibpQt+TfshqFpz27m/Dy3OmSfjJK4HKkdakDqmPIjAt/8si9D6c2gKoahYQKBgQDnt8MhHspf4+OSuiacfRUC/lPpGM7qo9GcL5nLDhkJbvm9bSsAwTKW21op+JQ3oYWrX4IEa9BKh+Sfv1kijX9vequNykLXi0IqFNL3BlYnhBJVPPqPNBcRGUVFvXaNyv2PLTrtaOF0nMHFcifEcHFy4aRwGBOAR7Qzla9/j8FUcwKBgQCgwdhPBiECTSyRrOPGwrWOhoT8iwI0RmxOwV+SmjzK8t+VQkGm+rmANyQqytObv97Hks/JlLbEbaBfK+zXqWxTlrwCyxznnVrMKu1tg6koo3NfRQ2fhe6SIdi4EpMw0IWMCrftmlYPAK9dA69K4CTavkapMKJCFobBvYKI6VoFiQKBgQCHxvP9+k7XdW+qUI3DcL/ZKzH8Cl9kum1eub3CcBZXosGQL+Hc5VhBcXMZ2ODw4CK1UpebA5nfslVTDgqq5oLfzd+si/Iy3xT8F4uu1/Wv3gHoFH01YG6LxGUFAonveByvwu8eojBJ5njcu5F11/WCPZnfXRxANMPw3ish8hh05QKBgACZ2OoqtrLggPsmb0+N6MnYnOSozGBPpxYASRAuPW3wzH8tWTt7knf1PNBgI7xgUj/iv54cTTacxk20x1TjEEGbvaYxBjGjd/RtcKfJJze8rLC9fFiNUp//OmUtxJkZHnawj5F20z2JHh615dDc16ZtsavuP50JooVU5QkH/kspAoGAGb1ypp3c5yyoanvTD9S283V9YHbWypEPTf/eBu4u1Tlfuu7IdllooNxxwlrtoTl2n6mBJVWKw853D2PnYlpnzjkPX5RTl0wkYP2GB5Up2nPHtN5bJZvBBYca3XIu7ZGKwmXAdeiB1P7uPE3Jw4XybICgtDw45j+7LdEGmRhzKB8=",
                "json",
                "utf-8",
                alipayPublicKey,
                "RSA2");
        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
        request.setNotifyUrl("");
        request.setReturnUrl("");
        JSONObject bizContent = new JSONObject();
        bizContent.put("out_trade_no", "20210817010101004");
        bizContent.put("total_amount", 0.01);
        bizContent.put("subject", "测试商品");
        bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
        request.setBizContent(bizContent.toString());
        AlipayTradePagePayResponse response = alipayClient.pageExecute(request);
        if(response.isSuccess()){
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
        }
运行后,可以看到返回了HTML表单文件。

 将其复制到runoob在线工具中,点击运行。

弹出支付页面:
 
 使用沙箱支付宝APP扫描支付。



















