本文主要介绍使用支付宝开放平台服务端 SDK 快速接入 **AI订阅 **解决方案。 + 商家自研:商家自助完成产品开通与接口调用。 + 服务商代开发:暂不支持服务商代开发。 # 自研商家接入说明 ## 创建应用 登录 [支付宝开放平台控制台](https://open.alipay.com/develop/manage),创建 移动应用。 **说明**:生成的应用唯一标识 APPID 可用于调用开放产品接口。 ## 配置应用 在 **开发** > **开发设置** 中配置应用信息。 ![](https://mdn.alipayobjects.com/afts/img/A*koABQZn4KJwAAAAASsAAAAgAeq8wAA/original?bz=openpt_doc&t=zcAwXENbpmdMQkvnNZvya1XrSp0fVcs9p1yYXQJMYagDAAAAZAAAMK8AAAAA) ### 接口加签方式 **必填。**用于防止数据篡改,保障应用和支付宝交互的安全性,可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 **说明**:若产品涉及 [资金支出的接口](https://opendocs.alipay.com/common/02kg66.md) 必须 [设置证书加签方式](https://opendocs.alipay.com/common/056zub.md?pathHash=91c49771)。 ![](https://mdn.alipayobjects.com/afts/img/A*0Xd2RIEolaMAAAAAQhAAAAgAeq8wAA/original?bz=openpt_doc&t=A4cnm0epCKAcui_s5lxzTd8Mr72KIQii7G_tZuaFs7oDAAAAZAAAMK8AAAAA) ### 服务器 IP 白名单 **选填。**用于提高应用访问开放平台的安全性,避免因应用私钥泄漏等原因导致业务受损,保障用户资金安全,可查看 [服务器 IP 白名单](https://opendocs.alipay.com/common/02kg65.md)。 ![](https://mdn.alipayobjects.com/afts/img/A*8XgMSKh-NRQAAAAAQpAAAAgAeq8wAA/original?bz=openpt_doc&t=jr30cUpqq_-vBDdSWnQuqLqWRNMQY-yY4p5U-SflmyQDAAAAZAAAMK8AAAAA) ### 应用网关 **必填。**用于接收支付宝异步通知消息,需要传入 http(s) 公网可访问网页地址,可查看 [应用网关](https://opendocs.alipay.com/common/02qibh.md)。 ![](https://mdn.alipayobjects.com/afts/img/A*y01MQIWvI-IAAAAAQbAAAAgAeq8wAA/original?bz=openpt_doc&t=zWlsXdn2hBwidck8ySa2TTX_pyEKKzWYFeyep0mYZ3oDAAAAZAAAMK8AAAAA) ### 接口内容加密方式 **选填。**用于加 / 解密 OpenAPI bizContent 报文内容,可大幅提升接口内容传输的安全性。可查看 [接口内容加密方式](https://opendocs.alipay.com/common/02mse3.md)。 ![](https://mdn.alipayobjects.com/afts/img/A*GQxbR7i7DQEAAAAAQfAAAAgAeq8wAA/original?bz=openpt_doc&t=RBiDjtkoEpnYND3gcdHST-U8L4vqlwD3qmUWqDcg1nQDAAAAZAAAMK8AAAAA) ### 授权回调地址 **选填**。**网页/移动应用** 指定的回调页面 URL,[用户信息授权](https://opendocs.alipay.com/open/02xtl7#%E5%85%B3%E4%BA%8E%20redirect_uri%20%E7%9A%84%E8%AF%B4%E6%98%8E.md) 成功后,将在该 URL 后携带授权码等信息并跳转至该页面。 **说明:**授权链接中配置的 redirect_uri 的值必须与此回调地址保持一致 (如:`https://www.alipay.com`) 。 ![](https://mdn.alipayobjects.com/afts/img/A*uWw3SZoWDs8AAAAAQ0AAAAgAeq8wAA/original?bz=openpt_doc&t=daRYylDLRsQ9Fd9WdN0xwbrAcTjhn2iJiDjE6RYgAOoDAAAAZAAAMK8AAAAA) ### 订阅消息服务 **选填**。异步消息通知,用于提高应用 API 的调用效率。详情可查看 [主动推送服务(From 蚂蚁)](https://opendocs.alipay.com/common/02km9j.md)和 [消息回流服务(To 蚂蚁)](https://opendocs.alipay.com/common/02kiq0.md)。 ![](https://mdn.alipayobjects.com/afts/img/A*_AoTSo_MpFIAAAAAQxAAAAgAeq8wAA/original?bz=openpt_doc&t=uAnZ8cSw3wbv2fTpazoLL3wCzF_mQAzZNLVYT1guLY4DAAAAZAAAMK8AAAAA) ## 上线应用 移动应用:需要手动上线。提交审核后,预计 1 个工作日的审核时间,请耐心等待,详细步骤可查看 [上线应用](https://opendocs.alipay.com/open/200/golive.md)。应用上线后,还需要完成开通产品才能在线上环境(生产环境)使用产品。 ## 绑定商家账号 可选操作。在支付宝开放平台创建的应用归属于对应的开放平台账号。如果要在应用中使用支付和资金等相关产品,需要将应用和支付宝商家平台账号绑定,应用才可调用需要商家开通的产品,具体步骤可查看 [绑定应用](https://opendocs.alipay.com/open/0128wr.md)。 ## 开通产品 **产品开通**:按要求填写并提交产品开通申请,提交后进入系统审核流程,审核通过结果将以短信通知到商户。商户也可点此查询 [产品开通情况](https://b.alipay.com/page/products-sign/dynlink/productSign/signManage.htm) 。 + **注意**若商家需要在网页版使用单笔支付能力,在开通产品时,需要勾选[电脑网站支付](https://b.alipay.com/page/product-workspace/product-detail/I1080300001000041203/newProductList?); **代调用授权:**点击 [代调用授权操作指南](https://opendocs.alipay.com/pre-open/0jt7es.md),按照操作指南完成代调用授权。商户开发接入前,请务必完成此操作。 # 集成并配置 SDK 服务端 SDK 需要商家或服务商集成在服务端系统中,用于后续的服务端接口调用。 ## 下载服务端 SDK 为了帮助开发者调用开放接口,支付宝提供了开放平台服务端 SDK,包含 Java、PHP、NodeJS、Python 和 .NET 五种语言,封装了签名与验签、HTTP 接口请求等基础功能。 **说明**:请先下载对应语言版本的最新版 [服务端 SDK](https://opendocs.alipay.com/common/02n6z6.md) 并引入开发工程。 ## 接口调用配置 在 SDK 调用具体的接口前需要进行 alipayClient 对象初始化。alipayClient 对象只需要初始化一次,后续调用不同的接口都可以使用同一个 alipayClient 对象。 ### 公钥模式加签 接口加签方式为 **公钥** 模式加签时 alipayClient 对象初始化的 Java 语言示例代码: ```java AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl(URL); alipayConfig.setAppId(APP_ID); alipayConfig.setPrivateKey(PRIVATE_KEY); alipayConfig.setFormat("json"); alipayConfig.setCharset(CHARSET); alipayConfig.setAlipayPublicKey(ALIPAY_PUBLIC_KEY); alipayConfig.setSignType(SIGN_TYPE); //构造client AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig); ``` #### 关键参数说明 | **配置参数** | **示例值解释** | **获取方式/示例值** | | --- | --- | --- | | URL | 支付宝网关(固定)。 | `https://openapi.alipay.com/gateway.do` | | APPID | APPID 即创建应用后生成。 | 获取可查看 [获取 APPID](https://opendocs.alipay.com/common/02nebp.md)。 | | PRIVATE_KEY | 开发者私钥,由开发者自己生成。 | 获取可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 | | FORMAT | 参数返回格式,只支持 JSON(固定)。 | JSON | | CHARSET | 编码集,支持 GBK/UTF-8。 | 开发者根据实际工程编码配置。 | | ALIPAY_PUBLIC_KEY | 支付宝公钥,由支付宝生成。 | 获取详情可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 | | SIGN_TYPE | 生成签名字符串所使用的签名算法类型,目前支持 RSA2 算法。 | RSA2 | ### 公钥证书模式加签 接口加签方式为 **公钥证书** 模式加签时,alipayClient 对象初始化的 Java 语言示例代码如下: **注意:**若使用 **公钥证书** 模式进行加签,需额外引入如下 JAR 包: + [bcprov-jdk15on](https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on) + [commons-logging](https://mvnrepository.com/artifact/commons-logging/commons-logging) + [fastjson](https://mvnrepository.com/artifact/com.alibaba/fastjson) ```java CertAlipayRequest certAlipayRequest = new CertAlipayRequest(); certAlipayRequest.setServerUrl(URL); certAlipayRequest.setAppId(APPID); certAlipayRequest.setPrivateKey(PRIVATE_KEY); certAlipayRequest.setFormat("json"); certAlipayRequest.setCharset(CHARSET); certAlipayRequest.setSignType(SIGN_TYPE); certAlipayRequest.setCertPath(app_cert_pathAPP_CERT_PATH); certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path); certAlipayRequest.setRootCertPath(alipay_root_cert_path ); DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest); // 提交数据至支付宝时请使用 alipayClient.certificateExecute(request); ``` #### 关键参数说明 | **配置参数** | **示例值解释** | **获取方式/示例值** | | --- | --- | --- | | URL | 支付宝网关(固定)。 | `https://openapi.alipay.com/gateway.do` | | APPID | APPID 即创建应用后生成。 | 获取可查看 [获取 APPID](https://opendocs.alipay.com/common/02nebp.md)。 | | PRIVATE_KEY | 开发者私钥,由开发者自己生成。 | 获取可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 | | FORMAT | 参数返回格式,只支持 JSON(固定)。 | JSON | | CHARSET | 编码集,支持 GBK/UTF-8。 | 开发者根据实际工程编码配置。 | | SIGN_TYPE | 生成签名字符串所使用的签名算法类型,目前支持 RSA2 算法。 | RSA2 | | app_cert_path | 应用公钥证书文件本地路径。 | 获取详情可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 | | alipay_cert_path | 支付宝公钥证书文件本地路径。 | 获取详情可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 | | alipay_root_cert_path | 支付宝根证书文件本地路径。 | 获取详情可查看 [接口加签方式](https://opendocs.alipay.com/common/02mriz.md)。 |