要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。
开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》。
生产环境网关:https://openapi.alipay.com/gateway.do
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。
各语言版本服务端SDK详细使用说明,请参考《服务端SDK使用说明》
接口调用顺序:
先用初始化接口获取模板,了解需要传入的字段和含义,再按照实际情况选择单个或批量接口同步数据
在SDK调用前需要进行初始化,代码如下:
1 | AlipayClient alipayClient =newDefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); |
---|
关键参数说明:
配置参数 | 示例值解释 | 获取方式/示例值 |
---|---|---|
URL | 支付宝网关(固定) | https://openapi.alipay.com/gateway.do |
APPID | APPID即创建应用后生成 | 获取见上面创建应用 |
FORMAT | 参数返回格式,只支持json | json(固定) |
APP_PRIVATE_KEY | 开发者私钥,由开发者自己生成 | 获取详见上面配置密钥 |
CHARSET | 编码集,支持GBK/UTF-8 | 开发者根据实际工程编码配置 |
ALIPAY_PUBLIC_KEY | 支付宝公钥,由支付宝生成 | 获取详见上面配置密钥 |
获取会员信息:https://docs.open.alipay.com/284
手机网站支付:https://docs.open.alipay.com/203
APP支付:https://docs.open.alipay.com/204
本次项目主要涉及2点,其他的字段依旧参考《蚂蚁金服-开放平台-支付API》
1、新增传入1个一级字段scene,
2、在原有extend_params(1级字段)下的 insurance_info(2级字段,json格式)传入2个字段insurance_payment_no、realname_certified_alipay_uid来完成指定的业务功能。
参数 | 类型 | 是否必须 | 最大长度 | 描述 | 示例值 | 备注 |
scene |
String | 是 | / | 场景, 进行专门的业务逻辑处理 |
InsuranceCompanyCN |
本次项目传入固定值为:InsuranceCompanyCN |
extend_params | ExtendParams | 是 | / | |||
insurance_info | String | 是 | / | 保险全国方案扩展信息的json字符串 | {\"insurance_payment_no\":\"18PICC01831180910200944\",\"realname_certified_alipay_uid\":\"2088302385946464\"} | 注意: 因为传的是字符串,所以需对"加上转移符 \"的格式 |
insurance_payment_no | String | 是 | 100 | 保险公司缴费支付订单 | 18PICC01831180910200944 | |
realname_certified_alipay_uid | String | 是 | 32 | 实名认证后获取到的支付宝用户id。 在收单下单时,会和实际下单支付的用户id进行校验,相同时才能下单。 |
2088121596664916 |
整体入参示例:
{
"biz_content": {
"body": "机动车辆 0917-C",
"subject": "机动车辆",
"out_trade_no": "7050d023331909",
"total_amount": 9,
"goods_type": "1",
"quit_url": "http://www.taobao.com/product/113714.html",
"product_code": "QUICK_WAP_PAY",
"scene": "InsuranceCompanyCN",
"extend_params": {
"insurance_info": "{\"insurance_payment_no\":\"18PICC01831180910200944\",\"realname_certified_alipay_uid\":\"2088302385946464\"}"
}
}
}
参数不合法和保险金额校验失败时均会返回错误码ACQ.INVALID_PARAMETER
alipay.trade.cancel
alipay.trade.query
参数 | 类型 | 是否必须 | 最大长度 | 描述 | 示例值 |
out_trade_no | String | / | / | / | 传入“订单流水号”;在没有trade_no时,传out_trade_no |
trade_no | String | / | / | / | 在有trade_no时,只需传trade_no |
1、支付宝订单号trade_no作为幂等控制的主键,和保险订单号out_trade_no是一一对应的,故保险订单的状态必须和支付宝订单状态一致;在交易关闭后,如需重新发起支付,需要携带新的out_trade_no来发起请求。
2、目前整个流程都可在生产环境串起来联调。