要在您的应用中使用支付宝开放产品的接口能力,您需要先去蚂蚁金服开放平台(open.alipay.com),在管理中心中创建登记您的应用,并提交审核,审核通过后会为您生成应用唯一标识(APPID),并且可以申请开通开放产品使用权限,通过APPID您的应用才能调用开放产品的接口能力。需要详细了解开放平台创建应用步骤请参考《开放平台应用创建指南》。
开发者调用接口前需要先生成RSA密钥,RSA密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY)。生成密钥后在开放平台管理中心进行密钥配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)。详情请参考《配置应用环境》。
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。
各语言版本服务端SDK详细使用说明,请参考《服务端SDK使用说明》
在SDK调用前需要进行初始化,代码如下:
AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE);
| 配置参数 | 示例值解释 | 获取方式/示例值 |
|---|---|---|
| URL | 支付宝网关(固定) | https://openapi.alipay.com/gateway.do |
| APPID | APPID 即创建应用后生成 | 获取见上面创建应用 |
| FORMAT | 参数返回格式,只支持json | json(固定) |
| APP_PRIVATE_KEY | 开发者私钥,由开发者自己生成 | 获取详见上面配置密钥 |
| CHARSET | 编码集,支持GBK/UTF-8 | 开发者根据实际工程编码配置 |
| ALIPAY_PUBLIC_KEY | 支付宝公钥,由支付宝生成 | 获取详见上面配置密钥 |
| SIGN_TYPE | 商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 | RSA2 |
开店接口是为开发者快速帮商家创建线上门店,门店实际归属为商家,所以开发者在帮助商家创建门店前需要得到商家的授权。商家授权后会返回给开发者一个code,通过code获取app_auth_token,每次帮商家调用接口时都需要传入app_auth_token使用方式请参考第三方应用授权。
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMaterialImageUploadRequest request = new AlipayOfflineMaterialImageUploadRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", AppAuthToken);
//图片格式
request.setImageType(imgType);
//图片名称
request.setImageName(imgName);
//图片二进制内容获取方式示例:imgContent = new FileItem("C:/Downloads/ooop6069/测试图片.jpg")
//Windows请填写绝对路径,不支持相对路径;Linux支持相对路径
request.setImageContent(imgContent);
//初始化返回对象实例并获取返回信息
AlipayOfflineMaterialImageUploadResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopCreateRequest request = new AlipayOfflineMarketShopCreateRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", AppAuthToken);
//配置创建门店所需的业务参数
request.setBizContent(bizContent);
//初始化返回对象实例并获取返回信息
AlipayOfflineMarketShopCreateResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
bizContent="{\"address\":\"卓越路加州城\"," +
"\"audit_images\":\"fTwPcLSxSa2VdNag2PqeKQAAACMAAQEC,hW4ZKOmpTmWALRI0uz1soQAAACMAAQEC,bGG2pMF-SAGY444rjAEVigAAACMAAQEC\"," +
"\"category_id\":\"2015050700000010\"," +
"\"biz_version\":\"2.0\","+
"\"operate_notify_url\":\"https://www.example.com\","+
"\"city_code\":\"330100\"," +
"\"contact_number\":\"057126788889,18666668880\"," +
"\"district_code\":\"320115\"," +
"\"is_operating_online\":\"T\"," +
"\"isv_uid\":\"2088902135432847\"," +
"\"latitude\":\"30.27315218\"," +
"\"longitude\":\"120.12476921\"," +
"\"main_image\":\"AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC\"," +
"\"main_shop_name\":\"测试示例\"," +
"\"online_image\":\"AM-uJRh2SRKz9N0r9zW4wQAAACMAAQEC\"," +
"\"province_code\":\"330000\"," +
"\"store_id\":\"1866700000630777\"}";
>>以上内容中的参数值均为示例,请开发者根据实际情况配置,参数说明请参考创建门店信息API。
>>创建请求提交后,会有个审核过程,审核时间一个工作日。
>>为一次提交能审核通过,请到“参数展示说明及注意事项”中查看相关注意事项。
>>operate_notify_url 门店审核状态会通过此参数值通知给开发者,具体通知内容可点此了解。
>>当支付宝或商家修改了开发者创建的门店,修改信息会通过应用网关通知给开发者,通知内容点此了解。
开发者只是发起方,开发者代商家做任何操作都需要传入商家授权的token。
如门店需要做支付,收款方也须为商家,不允许开发者收款再分给商家的形式。
>>门店创建接口中的“category_id”参数,开发者可在口碑开店商家准入条件-口碑类目和非口碑类目表格中获取和下载,也可以通过门店类目配置查询接口获取(鉴于此id会跟随业务变动,推荐使用接口方法动态获取)。
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopCategoryQueryRequest request = new AlipayOfflineMarketShopCategoryQueryRequest();
//配置创建门店所需的业务参数
request.setBizContent("{" +
" \"category_id\":\"2015050700000000\"," +
" \"op_role\":\"ISV\"" +
" }");
//初始化返回对象实例并获取返回信息
AlipayOfflineMarketShopCategoryQueryResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopModifyRequest request = new AlipayOfflineMarketShopModifyRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", AppAuthToken);
//修改哪个参数传入哪个参数,不用修改则不用传递,示例:{\"shop_id\":\"2015052100077000000000120773\",\"brand_name\":\"test2\"}
request.setBizContent(bizContent);
//初始化返回对象实例并获取返回参数
AlipayOfflineMarketShopModifyResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
| 参数名 | 参数说明 |
|---|---|
| notify_mobile | 门店店长电话号码 |
| implement_id | 机具号 |
| branch_shop_name | 分店名称 |
| value_added | 门店其他服务 |
| avg_price | 人均消费价格 |
本接口为查询接口,开发者请求,支付宝同步返回查询结果。
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopQuerydetailRequest request = new AlipayOfflineMarketShopQuerydetailRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", appAuthToken);
//bizContent参数示例{\"shop_id\":\"2015052100077000000000120773\",\"op_role\":\"MERCHANT或PROVIDER\"}
request.setBizContent(bizContent);
//初始化返回对象实例并获取返回信息
AlipayOfflineMarketShopQuerydetailResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopBatchqueryRequest request = new AlipayOfflineMarketShopBatchqueryRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", appAuthToken);
//bizContent示例值:{\"page_no\":\"1\"}
request.setBizContent(bizContent);
//初始化返回对象实例并获取返回信息
AlipayOfflineMarketShopBatchqueryResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketShopSummaryBatchqueryRequest request = new AlipayOfflineMarketShopSummaryBatchqueryRequest();
//AppAuthToken的值获取方式参考第三方应用授权
request.putOtherTextParam("app_auth_token", appAuthToken);
//bizContent示例:{\"op_role\":\"ISV\",\"query_type\":\"BRAND_RELATION\"}
request.setBizContent(bizContent);
//初始化返回对象实例并获取返回信息
AlipayOfflineMarketShopSummaryBatchqueryResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
//实例请求对象
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");
//初始化请求对象实例
AlipayOfflineMarketApplyorderBatchqueryRequest request = new AlipayOfflineMarketApplyorderBatchqueryRequest();
//bizContent示例值
request.setBizContent("{\"biz_type\":\"SHOP\"}");
//初始化返回对象并获取参数
AlipayOfflineMarketApplyorderBatchqueryResponse response = alipayClient.execute(request);
//输出返回信息,开发者自行处理,此处打印实例为方便调试查看
System.out.print(response.getBody());
| 同步返回结果码 | 含义 | 说明 |
|---|---|---|
| 10000 |
业务处理成功 | |
| 40001~40006 | 业务处理失败 | 具体失败原因请参考公共错误码。其它请参考API文档。 |
| 20000 | 业务出现未知错误或者系统异常 | 业务出现未知错误或者系统异常(请一定要在确定本次调用结果后,再发起重试),可调用查询接口发起查询确定结果。 |