体系外应用可以根据这个接口发送数据给支付宝完成整体的业务需求,比如发送特定场景的消息,通知之类的
环境 | HTTPS请求地址 |
---|---|
正式环境 | https://openapi.alipay.com/gateway.do |
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
method | String | 是 | 128 | 接口名称 | alipay.commerce.data.send |
format | String | 否 | 40 | 仅支持JSON | JSON |
charset | String | 是 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
sign_type | String | 是 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
sign | String | 是 | 344 | 商户请求参数的签名串,详见签名 | 详见示例 |
timestamp | String | 是 | 19 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" | 2014-07-24 03:07:50 |
version | String | 是 | 3 | 调用的接口版本,固定为:1.0 | 1.0 |
app_auth_token | String | 否 | 40 | 详见应用授权概述 | |
biz_content | String | 是 | - | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
scene_code | String | 可选 | 100 | 场景标识,由支付宝分配 | ins_airrefund |
op_code | String | 必须 | 100 | 操作码,由支付宝分配 | issue |
channel | String | 必须 | 64 | 场景的来源渠道,比如场景
在阿里旅行触发,就用alitrip 接入时和支付宝共同确认 |
antins |
version | String | 必须 | 32 | 场景数据的类型的版本,由支付宝分配 | 1.1 |
target_id | String | 必须 | 4000 | 场景覆盖的目标人群标识,
单个用户是支付宝的userId, 多个用户userId 使用英文半 角逗号隔开,最多200个 如果是群组,使用支付宝分配 的群组ID. |
2088101122835060 |
target_id_type | String | 可选 | 32 | 取值范围:
IDENTITY_CARD_NO :身份证 ALIPAY_LOGON_ID:支付宝登录账号 BINDING_MOBILE_NO:支付宝账号绑定的手机号 ALIPAY_USER_ID:支付宝user_id 标明target_id对应的类型,此参数为空时, 默认为支付宝账号的user_id。 注意:类型为身份证、支付宝绑定的手机号时, 可能对应多个支付宝账号,此时只会选择列表 第一个支付宝账号的userId作为targetId使用。 |
ALIPAY_USER_ID |
scene_data | String | 可选 | 6000 | 场景的数据表示. json 数组
格式,根据不同的scene_code, op_code,channel,version共同确定 参数是否可以为空,接入时由支付宝确定 参数格式。 |
{"info":[{"third_no":"xxxx"}]} |
op_data | String | 可选 | 6000 | 操作数据,如果只需要支付宝这边利用
数据直接完成某个功能(通知),则使 用此参数传输数据.,根据不同的scene_code, op_code,channel,version共同确定参数是否 可以为空,接入时由支付宝确定参数格式。 |
{"card":[{"card_template":"xxxx"}]} |
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
code | String | 是 | - | 网关返回码,详见文档 | 40004 |
msg | String | 是 | - | 网关返回码描述,详见文档 | Business Failed |
sub_code | String | 否 | - | 业务返回码,详见文档 | ACQ.TRADE_HAS_SUCCESS |
sub_msg | String | 否 | - | 业务返回码描述,详见文档 | 交易已被支付 |
sign | String | 是 | - | 签名,详见文档 | DZXh8eeTuAHoYE3w1J+POiPhfDxOYBfUNn1lkeT/V7P4zJdyojWEa6IZs6Hz0yDW5Cp/viufUb5I0/V5WENS3OYR8zRedqo6D+fUTdLHdc+EFyCkiQhBxIzgngPdPdfp1PIS7BdhhzrsZHbRqb7o4k3Dxc+AAnFauu4V6Zdwczo= |
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
data_send_business_result | DataSendBusinessResult | 必填 | - | data_send_business_result:数据发送业务处理结果信息 | |
|
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2"); AlipayCommerceDataSendRequest request = new AlipayCommerceDataSendRequest(); request.setBizContent("{" + "\"scene_code\":\"ins_airrefund\"," + "\"op_code\":\"issue\"," + "\"channel\":\"antins\"," + "\"version\":\"1.1\"," + "\"target_id\":\"2088101122835060\"," + "\"target_id_type\":\"ALIPAY_USER_ID\"," + "\"scene_data\":\"{\\\"info\\\":[{\\\"third_no\\\":\\\"xxxx\\\"}]}\"," + "\"op_data\":\"{\\\"card\\\":[{\\\"card_template\\\":\\\"xxxx\\\"}]}\"" + " }"); AlipayCommerceDataSendResponse response = alipayClient.execute(request); if(response.isSuccess()){ System.out.println("调用成功"); } else { System.out.println("调用失败"); }
{ "sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE", "alipay_commerce_data_send_response":{ "msg":"Success", "data_send_business_result":{ "biz_code":"ACCESS_FORBIDDEN", "biz_msg":"用户不在允许访问名单中" }, "code":"10000" } }
{ "sign":"ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE", "alipay_commerce_data_send_response":{ "msg":"Service Currently Unavailable", "code":"20000", "sub_msg":"系统繁忙", "sub_code":"isp.unknow-error" } }
错误码 | 错误描述 | 解决方案 |
---|---|---|
SYSTEM_ERROR | 系统错误. | 通知支付宝这边排查原因 |
PARAM_ERROR | 参数错误 | 检查传入的参数以及参数值是否符合说明 |
BIZ_ERROR | 业务处理异常 | 请参考biz_code与biz_msg来做后续处理 |