文档中心 > 开放平台

服务市场管理快速接入

更新时间:2017/06/08 访问次数:51711

 第一步:接入前准备

服务商调用此产品的前提,是服务已经发布到服务市场,即已有应用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说明

2.接口调用配置

在SDK调用前需要进行初始化,代码如下:

AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,APP_PUBLIC_KEY, SIGN_TYPE);

关键参数说明:

配置参数 示例值解释 获取方式/示例值

URL

支付宝网关(固定)

https://openapi.alipay.com/gateway.do

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 业务出现未知错误或者系统异常

业务出现未知错误或者系统异常(请一定在确定本次调用结果后,发起重试),可调用查询接口发起查询确定结果。

FAQ

关于此文档暂时还没有FAQ
返回
顶部