要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。
开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》。
开发语言 | 资源下载 | 环境要求 |
---|---|---|
JAVA版资源 | SDK1.5 | 适用于Java语言、jdk版本1.5及以上的开发环境 |
SDK1.4 | 适用于Java语言、jdk版本1.4及以下的开发环境 | |
.NET版资源 | SDK | 适用于Visual studio 2010及以上版本、Framework3.5及以上版本的开发环境 |
PHP版资源 | SDK | 适用于php全系列开发环境 |
各语言版本服务端SDK详细使用说明,请参考《服务端SDK使用说明》
在SDK调用前需要进行初始化,Java代码示例如下:
AlipayClient alipayClient = new DefaultAlipayClient(https://openapi.alipay.com/gateway.do,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 | 支付宝公钥,由支付宝生成 | 获取详见上面配置密钥 |
商户签约包含以下接口:
接口英文名称 |
接口中文 |
接口描述 |
ant.merchant.expand.image.upload |
专用图片资料上传接口 |
供开发者上传提交入驻申请所需要的图片 |
ant.merchant.expand.enterprise.apply |
企业级商户入驻申请接口 |
开发者通过该接口帮助企业级商户入驻支付宝 |
ant.merchant.expand.personal.apply |
个体工商户入驻申请接口 |
开发者通过该接口帮助个体工商户入驻支付宝 |
ant.merchant.expand.mapplyorder.query |
入驻申请单查询接口 |
查询已提交的商户入驻申请单 |
接口调用示例大致分为3步:
开发者通过商家签约接口完成代理企业级商家的签约入驻。
接口调用时序图:
首先我们通过专用图片上传接口上传入驻申请所需要的图片。
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY); AntMerchantExpandImageUploadRequest request = new AntMerchantExpandImageUploadRequest(); request.setImageType("jpg"); FileItem ImageContent = new FileItem("C:\\2bECW.jpg"); request.setImageContent(ImageContent); return alipayClient.execute(request); //处理接口返回消息alipayResponse
图片上传完毕后,我们通过企业级商户入驻申请接口完成入驻申请,入驻申请单主要由企业法人信息、企业营业执照信息、企业基本信息、企业银行账户信息等组成,为了演示简单,我们仅用必要的配置来创建入驻申请单,如需了解更详细的入驻申请配置说明,可参阅API接口列表。
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY); AntMerchantExpandEnterpriseApplyRequest request = new AntMerchantExpandEnterpriseApplyRequest(); request.setBizContent("{" + " \"login_id\":\"sample@gmail.com\"," + " \"out_biz_no\":\"321234\"," + " \"base_info\":{" + " \"special_license_pic\":[" + " \"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " ]," + " \"logo_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"web_address\":[" + " \"http://www.alibaba.com\"" + " ]," + " \"web_auth_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"mcc_code\":\" A_A01_4111\"," + " \"contact_info\":[{" + " \"contact_name\":\"张三\"," + " \"contact_position\":\"科长\"," + " \"contact_mobile\":\"13110101010\"," + " \"contact_email\":\"sample@mail.com\"" + " }]" + " }," + " \"business_license_info\":{" + " \"company_name\":\"包子铺\"," + " \"company_address\":\"东大名路1号\"," + " \"business_license_no\":\"1532501100006302\"," + " \"business_license_indate\":\"2018-01-01\"," + " \"business_license_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"business_scope\":\"餐饮\"," + " \"business_license_province\":\"330000\"," + " \"business_license_city\":\"330100\"," + " \"business_license_is_three_in_one\":true," + " \"org_code_certificate_no\":\"32145431\"," + " \"org_code_certificate_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"business_license_auth_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " }," + " \"legal_representative_info\":{" + " \"legal_representative_name\":\"张三\"," + " \"legal_representative_cert_type\":\"RESIDENT\"," + " \"legal_representative_cert_no\":\"310101199111111234\"," + " \"legal_representative_cert_indate\":\"2020-02-02\"," + " \"legal_representative_cert_pic_front\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"legal_representative_cert_pic_back\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " }," + " \"business_bank_account_info\":{" + " \"business_bank_card_no\":\"622633212377732\"," + " \"business_bank_account_name\":\"科技有限公司\"," + " \"business_bank_sub\":\"招商银行上海分行外滩支行\"," + " \"business_bank_province\":\"330000\"," + " \"business_bank_city\":\"330100\"," + " \"business_bank_name\":\"招商银行\"" + " }," + " \"shop_info\":{" + " \"shop_name\":\"文三路店\"," + " \"shop_sign_board_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"shop_sence_pic\":[" + " \"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " ]" + " }" + " }"); AntMerchantExpandEnterpriseApplyResponse response = alipayClient.execute(request); //处理接口返回消息alipayResponse
关键出参:
参数名称 |
参数说明 |
order_no |
支付宝端商户入驻申请单据号 |
out_biz_no |
请求时传入的开发者自己的请求单据号 |
注意:
1、此处bizContent中的logo_pic、法人证件照等图片参数,需要使用图片资源ID,可以通过“专用图片资料上传接口”上传图片资料并得到图片资源ID。
2、外部入驻申请单据号out_biz_no在任何情况下不可重复,即使对于失败或超时的单据,外部入驻申请单据号也可能已经被使用了,如需再次发起入驻申请,必须使用新的外部入驻申请单据号调用接口。如使用相同的外部入驻申请单据号调用接口且请求参数中的任意参数与已有入驻申请单不一致则会报CONTEXT_INCONSISTENT(入驻单信息被篡改)错误,如请求参数与已提交入驻申请单全部一致则返回上一次提交生成的支付宝端商户入驻申请单据号order_no。
3、此接口请求参数预校验失败后会返回预校验失败详情,具体可参考进阶篇章的预校验详解。
4、此接口只同步返回入驻申请单据号代表申请成功,提交申请成功后会异步进行人工认证审核和签约审核,审核结果会通过异步通知的方式通知开发者,通过邮件或短信的形式通知商户。详情可参考进阶篇章中的异步通知。
商户入驻申请单创建完成后,可以通过商户入驻申请单据号来查询入驻申请单信息。
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY); AntMerchantExpandMapplyorderQueryRequest request = new AntMerchantExpandMapplyorderQueryRequest(); request.setBizContent("{" + " \"order_no\":\"2132933\"" + " }"); AntMerchantExpandMapplyorderQueryResponse response = alipayClient.execute(request); //处理接口返回消息alipayResponse
开发者通过商户签约接口完成代理个体工商户的签约入驻。
接口调用时序图:
先通过专用图片资料上传接口上传申请时所需要的图片,图片上传完毕后,我们通过个体工商户入驻申请接口完成入驻申请,入驻申请单主要由法人信息、营业执照信息、企业基本信息、个体银行账户信息等组成,为了演示简单,我们仅用必要的配置来创建入驻申请单,如需了解更详细的入驻申请配置说明,可参阅API接口列表。
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY); request.setBizContent("{" + " \"login_id\":\"13110101010\"," + " \"out_biz_no\":\"2016070788301823878\"," + " \"base_info\":{" + " \"special_license_pic\":[" + " \"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " ]," + " \"logo_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"web_address\":[" + " \"http://www.alibaba.com\"" + " ]," + " \"web_auth_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"mcc_code\":\" A_A01_4111\"," + " \"contact_info\":[{" + " \"contact_name\":\"张三\"," + " \"contact_position\":\"科长\"," + " \"contact_mobile\":\"13110101010\"," + " \"contact_email\":\"sample@mail.com\"" + " }]" + " }," + " \"business_license_info\":{" + " \"company_name\":\"包子铺\"," + " \"company_address\":\"东大名路1号\"," + " \"business_license_no\":\"1532501100006302\"," + " \"business_license_indate\":\"2018-01-01\"," + " \"business_license_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"business_scope\":\"餐饮\"," + " \"business_license_province\":\"330000\"," + " \"business_license_city\":\"330100\"," + " \"business_license_is_three_in_one\":true," + " \"org_code_certificate_no\":\"32145431\"," + " \"org_code_certificate_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"business_license_auth_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " }," + " \"operator_info\":{" + " \"operator_name\":\"个体工商户经营者姓名\"," + " \"operator_cert_type\":\"RESIDENT\"," + " \"operator_cert_no\":\"310100198901012222\"," + " \"operator_cert_indate\":\"2018-01-01\"," + " \"operator_cert_pic_front\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"operator_cert_pic_back\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " }," + " \"personal_bank_account_info\":{" + " \"personal_bank_card_no\":\"6322619237198273\"," + " \"personal_bank_account_mobile\":\"16110101010\"," + " \"personal_bank_holder_name\":\"张三\"," + " \"personal_bank_holder_certno\":\"310101193301333333\"" + " }," + " \"shop_info\":{" + " \"shop_name\":\"文三路店\"," + " \"shop_sign_board_pic\":\"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"," + " \"shop_sence_pic\":[" + " \"T1hDhXXcdxXXagOFbX?t=jpg&xsig=cc6972c371de09b5bc4c024d24fcd2e9\"" + " ]" + " }" + " }"); AntMerchantExpandPersonalApplyResponse response = alipayClient.execute(request); //处理接口返回消息alipayResponse
注意:
1、此处bizContent中的logo_pic、法人证件照等图片参数,需要使用图片资源ID,可以通过“专用图片资料上传接口”上传图片资料并得到图片资源ID。
2、外部入驻申请单据号out_biz_no在任何情况下不可重复,即使对于失败或超时的单据,外部入驻申请单据号也可能已经被使用了,如需再次发起入驻申请,必须使用新的外部入驻申请单据号调用接口。如使用相同的外部入驻申请单据号调用接口且请求参数中的任意参数与已有入驻申请单不一致则会报CONTEXT_INCONSISTENT(入驻单信息被篡改)错误,如请求参数与已提交入驻申请单全部一致则返回上一次提交生成的支付宝端商户入驻申请单据号order_no。
3、此接口请求参数预校验失败后会返回预校验失败详情,具体可参考进阶篇章的入驻接口参数预校验。
4、此接口只同步返回入驻申请单据号代表申请成功,提交申请成功后会异步进行人工认证审核和签约审核,审核结果会通过异步通知的方式通知开发者,通过邮件或短信的形式通知商户。详情可参考进阶篇章中的异步通知。
图片资源上传、查询接口参见开发者代理企业级商户入驻签约的示例。
获取接口处理结果代码示例:
System.out.println(alipayResponse.getCode()); // 获取接口结果码 System.out.println(alipayResponse.getSubCode()); // 当接口调用失败后,获取子错误码 System.out.println(alipayResponse.getMsg()); // 获取子错误描述 System.out.println(alipayResponse.getBody()); // 获取完整的返回报文
同步返回结果码 | 含义 | 说明 |
10000 |
业务处理成功 | |
40001~40006 | 业务处理失败 | 具体失败原因请参考公共错误码。其它请参考API文档。 |
20000 | 业务出现未知错误或者系统异常 | 业务出现未知错误或者系统异常(请一定要在确定本次调用结果后,再发起重试)。 |