文档中心 > 开放平台

应用说明

具备开发能力的服务商入驻开放平台后,需要通过创建应用的方式接入蚂蚁各项产品接口并进行开发,基于对行业及业务场景痛点的理解,创造能够满足市场需要的解决方案,以应用的形式服务用户。

创建应用后即生成应用的标识APPID,使用支付宝账号登录开放平台后,在“我的应用”中按下图方式查看APPID。

签约说明

应用创建完成后,需要给应用添加APP支付功能,把APP支付能力加到你的应用中,此时该应用为开发中状态,只能在沙箱环境下进行调试。应用开发完成后,请开发者自行进行验收和安全性检查(安全性检查可参考《开放平台第三方应用安全开发指南》),验收检查完成后可申请上线。应用申请上线后,会同时申请此列表的功能,接口即生效,这个状态下的应用能够调用生产环境的接口。

若在应用上线后需要添加其他的接口功能,则需要在开放平台里进行签约,这时候约定的合同就生效了。

如下为已经获得的接口功能:

密钥配置说明

应用公钥:由商户自己生成的RSA公钥(与应用私钥必须匹配),商户需上传应用公钥到支付宝开放平台,以便支付宝使用该公钥验证该交易是否是商户发起的。
应用私钥:由商户自己生成的RSA私钥(与应用公钥必须匹配),商户开发者使用应用私钥对请求字符串进行加签。
支付宝公钥:支付宝的RSA公钥,商户使用该公钥验证该结果是否是支付宝返回的。

为了保证交易双方的身份和数据安全,需要配置双方密钥。商户在生成密钥后,需要上传应用公钥到支付宝开放平台,并且获取支付宝公钥用于支付宝返回通知的验签,具体方法流程请参见上传应用公钥并获取支付宝公钥
蚂蚁金服开放平台RSA签名模式全面支持2048及以上长度密钥,配合增强的SHA256摘要算法,将更好的保护商户数据安全及可靠性。RSA和RSA2签名方式的对比,可参考RSA和RSA2签名算法区别,如下图所示。
注:如果您将应用公钥上传到以下“RSA2(SHA256)”处,接口中的sign_type值需要相应的设置为RSA2;如果您将应用公钥上传到以下“RSA(SHA1)”处,接口中的sign_type值需要相应的设置为RSA;

签名验签问题排查指导

支付宝开放平台SDK封装了签名和验签过程,只需配置账号及密钥参数,强烈建议使用。

更多签名问题的自助排查流程,可以参考支付宝验签专区的未使用开放平台SDK的自助排查流程。关于同步通知和异步通知的验签规则,可参考验签教程

更多关于签名教程和签名工具下载等问题,请参见签名专区

如果遇到报错ALI40247,请在SDK返回的result中查看具体的错误信息,同时可在公共返回码列表中找到对应的解决方案。其他联调过程中出现的错误码信息,请点击右侧的智能小宝,进行查询。

同步通知及异步通知

同步通知支付宝sdk对商户的请求支付数据处理完成后,会将结果同步反馈给商户app端。
异步通知对于App支付产生的交易,支付宝会根据原始支付API中传入的 异步通知地址notify_url,通过POST请求的形式将支付结果作为参数通知到商户系统。

由于同步通知和异步通知都可以作为支付完成的凭证,且异步通知支付宝一定会确保发送给商户服务端。为了简化集成流程,商户可以将同步结果仅仅作为一个支付结束的通知(忽略执行校验),实际支付是否成功,完全依赖服务端异步通知。

验证签名正确后,必须再严格按照如下描述校验通知数据的正确性。

1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;

2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);

3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email);

4、验证app_id是否为该商户本身;

上述1、2、3、4有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。在上述验证通过后商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。

交易辅助接口

目前提供的交易辅助接口包括以下接口:

API英文名 API中文名 完整文档
alipay.trade.query 交易查询接口 查看文档
alipay.trade.close 交易关闭接口 查看文档
alipay.trade.refund 交易退款接口 查看文档
alipay.trade.fastpay.refund.query 交易退款查询接口 查看文档
alipay.data.dataservice.bill.downloadurl.query 查询账单下载地址接口 查看文档

注意:在本接口调用时,请求参数中所使用的app_id需要和交易接口中所使用的app_id保持一致。关于各接口具体的参数信息和注意事项,请参考各接口文档。

关于订单号的说明

商户外部订单号:商户提供给支付宝的请求数据中会传入out_trade_no,表示商户网站唯一的订单号。
支付宝订单号:在收到商户的交易请求后,支付宝返回的异步通知中会返回参数trade_no,表示该订单在支付宝端的唯一交易凭证号。

关于交易状态的说明

支付宝返回的常见的交易状态包含以下:

枚举名称 枚举说明 触发条件描述 触发条件默认值
WAIT_BUYER_PAY 交易创建,等待买家付款 交易创建 false(不触发通知)
TRADE_CLOSED 未付款交易超时关闭,或支付完成后全额退款 交易关闭 true(触发通知)
TRADE_SUCCESS 交易支付成功,可退款 交易支付成功 true(触发通知)
TRADE_FINISHED 交易结束,不可退款 交易完成 true(触发通知)

状态TRADE_SUCCESS的通知触发条件是商户签约的产品支持退款功能的前提下,买家付款成功;
状态TRADE_FINISHED的通知触发条件是商户签约的产品不支持退款功能的前提下,买家付款成功;或者,商户签约的产品支持退款功能的前提下,交易已经成功并且已经超过可退款期限。

注:商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功。
一般情况下,商户只需按照交易状态的默认返回情况来进行相应处理即可,暂不开放单独配置某状态是否返回的功能 。

常见问题

接口接入常见问题自助排查详见FAQ

更多联调过程中出现的错误码信息,请点击右侧的智能小宝,进行自助查询。 

 

 

 

FAQ

关于此文档暂时还没有FAQ
返回
顶部