服务商调用此产品的前提,是服务已经发布到服务市场,即已有应用APPID以及密钥等。
此产品不需要申请签约,开发者在添加接口后可直接调用。
如没有应用请先创建应用,再配置密钥,然后选择接口权限,再按照以下流程调用接口。
1. 配置应用网关:用于接受服务订购通知,只有配置此参数才能正常调用以下接口。(如已配置请忽略,如未配置请参考一下流程)
2. 对接第三方授权接口:本产品中有三个节点的接口(在以下章节中有介绍)在调用前,需要商户先做授权,否则无法调用。第三方授权如何对接点此了解,如已对接过则忽略此步骤。
3.了解接口基本信息以及接口之间调用关系。
口碑服务市场订购信息产品所包含的所有接口:
接口名称 | 描述 |
---|---|
alipay.open.servicemarket.order.query |
订购插件订单明细查询 |
alipay.open.servicemarket.order.notify |
服务市场商户确认订购通知(非接口,是支付宝主动发送订购通知给服务商,不要主动调用) |
alipay.open.servicemarket.order.accept |
服务商接单操作 |
alipay.open.servicemarket.order.item.complete |
服务商完成订单内单个明细实施项 |
alipay.open.servicemarket.order.item.cancel |
服务订单明细实施项单项取消 |
alipay.open.servicemarket.order.reject |
服务商拒绝接单 |
alipay.open.servicemarket.commodity.shop.offline |
门店插件下架操作(需要商户授权) |
alipay.open.servicemarket.order.item.confirm |
服务商代商家确认实施完成(需要商户授权) |
alipay.open.servicemarket.commodity.shop.online |
门店插件上架操作(需要商户授权) |
接口之间调用先后关系
1. 下载服务端SDK
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,包含JAVA、PHP和.NET三个语言版本,封装了签名&验签、HTTP接口请求等基础功能。请先下载对应语言版本的SDK并引入您的开发工程。
各语言版本服务端SDK详细使用说明,请参考《服务端SDK说明》
在SDK调用前需要进行初始化,代码如下:
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY, SIGN_TYPE);
配置参数 | 示例值解释 | 获取方式/示例值 |
---|---|---|
URL |
支付宝网关(固定) |
|
APP_ID |
APPID 即创建应用后生成 |
获取见创建应用 |
FORMAT |
参数返回格式,只支持json |
json(固定) |
APP_PRIVATE_KEY |
开发者私钥,由开发者自己生成 |
获取详见密钥配置 |
CHARSET |
编码集,支持GBK/UTF-8 |
开发者根据实际工程编码配置 |
ALIPAY_PUBLIC_KEY |
支付宝公钥,由支付宝生成 |
获取详见密钥配置 |
SIGN_TYPE |
商户生成签名字符串所使用的签名算法类型,目前支持RSA2和RSA,推荐使用RSA2 |
RSA2 |
订购插件订单明细查询(alipay.open.servicemarket.order.query)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderQueryRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderQueryResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketOrderQueryRequest request = new AlipayOpenServicemarketOrderQueryRequest(); //设置请求对象的业务参数,commodity_order_id是商户下单后支付宝异步通知给服务商的 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\",\"start_page\":\"1\"}"); AlipayOpenServicemarketOrderQueryResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
服务商接单操作(alipay.open.servicemarket.order.accept)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderRejectRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderRejectResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); // 初始化请求对象实例 AlipayOpenServicemarketOrderAcceptRequest request = new AlipayOpenServicemarketOrderAcceptRequest(); // 设置请求对象的业务参数,commodity_order_id是商户下单后支付宝异步通知给服务商的 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\""); // 调用接口 AlipayOpenServicemarketOrderAcceptResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
服务商拒绝接单(alipay.open.servicemarket.order.reject)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderRejectRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderRejectResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketOrderRejectRequest request = new AlipayOpenServicemarketOrderRejectRequest(); //设置请求对象的业务参数,commodity_order_id是商户下单后支付宝异步通知给服务商的 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\",\"reject_reason\":\"暂不支持该地区服务\"}"); AlipayOpenServicemarketOrderRejectResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
服务商完成订单内单个明细实施项(alipay.open.servicemarket.order.item.complete)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderItemCompleteRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderItemCompleteResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketOrderItemCompleteRequest request = new AlipayOpenServicemarketOrderItemCompleteRequest(); //设置请求对象的业务参数,shop_id可用订购插件订单明细查询接口获取 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\",\"shop_id\":\"2015052000077000000000182140\"}"); AlipayOpenServicemarketOrderItemCompleteResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
服务订单明细实施项单项取消(alipay.open.servicemarket.order.item.cancel)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderItemCancelRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderItemCancelResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketOrderItemCancelRequest request = new AlipayOpenServicemarketOrderItemCancelRequest(); // 设置请求对象的业务参数 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\",\"shop_id\":\"2015052000077000000000182140\",\"cancel_reason\":\"该门店暂无法实施完成\"}"); AlipayOpenServicemarketOrderItemCancelResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
门店插件上架操作(alipay.open.servicemarket.commodity.shop.online)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketCommodityShopOnlineRequest; import com.alipay.api.response.AlipayOpenServicemarketCommodityShopOnlineResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketCommodityShopOnlineRequest request = new AlipayOpenServicemarketCommodityShopOnlineRequest(); //设置第三方授权token参数,app_auth_token值获取请参考此文档第一步接入前准备“第三方应用授权” request.putOtherTextParam("app_auth_token", appAuthToken); // 设置请求对象的业务参数 request.setBizContent("{\"commodity_id\":\"20160010200000000033400\",\"shop_id\":\"2015052000077000000000182140\"}"); AlipayOpenServicemarketCommodityShopOnlineResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
门店插件下架操作(alipay.open.servicemarket.commodity.shop.offline)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketCommodityShopOfflineRequest; import com.alipay.api.response.AlipayOpenServicemarketCommodityShopOfflineResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketCommodityShopOfflineRequest request = new AlipayOpenServicemarketCommodityShopOfflineRequest(); // 设置第三方授权token参数,app_auth_token值获取请参考此文档第一步接入前准备“第三方应用授权” request.putOtherTextParam("app_auth_token", appAuthToken); // 设置请求对象的业务参数 request.setBizContent("{\"commodity_id\":\"20160010200000000033400\",\"shop_id\":\"2015052000077000000000182140\"}"); AlipayOpenServicemarketCommodityShopOfflineResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
服务商代商家确认实施完成(alipay.open.servicemarket.order.item.confirm)
此接口需要导入的包: import com.alipay.api.AlipayApiException; import com.alipay.api.request.AlipayOpenServicemarketOrderItemConfirmRequest; import com.alipay.api.response.AlipayOpenServicemarketOrderItemConfirmResponse;
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY); AlipayOpenServicemarketOrderItemConfirmRequest request = new AlipayOpenServicemarketOrderItemConfirmRequest(); // 设置第三方授权token参数 request.putOtherTextParam("app_auth_token", appAuthToken); // 设置请求对象的业务参数 request.setBizContent("{\"commodity_order_id\":\"20160010200000000033400\",\"shop_id\":\"2015052000077000000000182140\"}"); AlipayOpenServicemarketOrderItemConfirmResponse response = alipayClient.execute(request); //输出返回信息,开发者自行处理,此处打印实例为方便调试查看 System.out.print(response.getBody();
同步返回结果码 | 含义 | 说明 |
---|---|---|
10000 |
业务处理成功 | |
40001~40006 | 业务处理失败 | 具体失败原因请参考公共错误码。其它请参考API文档。 |
20000 | 业务出现未知错误或者系统异常 | 业务出现未知错误或者系统异常(请一定在确定本次调用结果后,发起重试),可调用查询接口发起查询确定结果。 |