完成 接入准备 后,服务商可根据本文指引快速集成服务市场基础包功能,调用接口管理订单及服务。
订单状态的流转的示意图如下:
注意:
- 文档中的代码示例和 demo 是用来阐述api基本使用方法的,仅针对大众场景,供服务商参考,特殊情况还请服务商自行扩展,确保符合自身业务需求。
- 能力政策答疑、签约审核超时、签约申请被驳回等问题,可拨打 4007585858 咨询。
服务市场发送订购通知
商家订购服务后,服务市场会推送订单通知 给第三方应用的应用网关,实际收到的是 post 请求,参数在请求参数中。
订购通知示例
https://www.merchant.com/receive_notify.htm?notify_type=servicemarket_order_notify¬ify_id=91722adff935e8cfa58b3aabf4dead6ibe¬ify_time=2017-02-16 21:46:15&sign_type=rsa2&sign=wco t3d8kg71dtlkwn7r9pzuoxeabjwp8/fousxcuskxsovyxbpsaidpryscjhcjmaglncjokjqlj28/asl93jotw39fx6i07lxhnbpknezalwmvpdnqui01hzszf9v1i6ggzjbiad5lg8bzttxzoj87ub2i9guj3nr/nuc9vey=&commodity_order_id=null&order_time=null&title=null&name=null&merchant_pid=null&contactor=null&phone=null&order_item_num=null&total_price=null&biz_type=null&item_code=am011501000000079408&specifications=套餐一&package_count=1000&period_day=180&order_ticket=201603bb189131e708054fc589c9b2b5188cdd00&service_code=00000000&isv_ticket=0ba634751542795277522707125886&consumer_miniappid=2018112160475050&merchant_shop_id=2019081500502000000025130577&miniapp_release_bundle=1032,1096&promoter_master_name=某某服务商名称&promoter_master_pid=2088xxxxx
通知中的参数说明
参数
是否必传
描述
示例值
commodity_order_id
是
订单编号(用于订单明细回查使用,回查接口 alipay.open.servicemarket.order.query)
order_time
是
订购时间
title
是
服务名称
name
是
商户名称
merchant_pid
是
商户的uid
2088xxxxx
contactor
是
联系人
张xx
phone
是
联系电话
13550xxxxxx
order_item_num
是
门店数
total_price
是
订单价格
biz_type
是
所属业务分类(例如:排队)
item_code
否
服务 itemcode
am011501000000079408
specifications
否
规格名称
套餐一
package_count
否
套餐数量
1000
period_day
否
订购周期(天)
180
order_ticket
否
订单授权码
201603bb189131e708054fc589c9b2b5188cdd00
service_code
否
服务码
00000000
isv_ticket
否
服务商透传的商户标识,此处回传服务商在拼接线下推广授权链接时填入的 ticket 的值
0ba634751542795277522707125886
consumer_miniappid
否
小程序的 appid
2019112100000050
merchant_shop_id
否
商家门店id
2019081500502000000025130577
miniapp_release_bundle
否
小程序发布的端信息,支持多个端时使用英文逗号分隔。 1032=支付宝,1033=钉钉,1034=高德,1050=淘宝,1051=天猫精灵,1053=香港版支付宝,1055=mpaas,1096=支付宝iot,3727=阿里车
1032,1096
promoter_master_name
否
订购关联推广商主账号名称
某某服务商名称
promoter_master_pid
否
订购关联推广商主账号pid
2088xxxxx
","id":"delcb","rows":23,"cols":4,"hideborder":false}" id="delcb">参数 | 是否必传 | 描述 | 示例值 |
commodity_order_id | 是 | 订单编号(用于订单明细回查使用,回查接口 alipay.open.servicemarket.order.query) | |
order_time | 是 | 订购时间 | |
title | 是 | 服务名称 | |
name | 是 | 商户名称 | |
merchant_pid | 是 | 商户的uid | 2088xxxxx |
contactor | 是 | 联系人 | 张xx |
phone | 是 | 联系电话 | 13550xxxxxx |
order_item_num | 是 | 门店数 | |
total_price | 是 | 订单价格 | |
biz_type | 是 | 所属业务分类(例如:排队) | |
item_code | 否 | 服务 itemcode | am011501000000079408 |
specifications | 否 | 规格名称 | 套餐一 |
package_count | 否 | 套餐数量 | 1000 |
period_day | 否 | 订购周期(天) | 180 |
order_ticket | 否 | 订单授权码 | 201603bb189131e708054fc589c9b2b5188cdd00 |
service_code | 否 | 服务码 | 00000000 |
isv_ticket | 否 | 服务商透传的商户标识,此处回传服务商在拼接线下推广授权链接时填入的 ticket 的值 | 0ba634751542795277522707125886 |
consumer_miniappid | 否 | 小程序的 appid | 2019112100000050 |
merchant_shop_id | 否 | 商家门店id | 2019081500502000000025130577 |
miniapp_release_bundle | 否 | 小程序发布的端信息,支持多个端时使用英文逗号分隔。 1032=支付宝,1033=钉钉,1034=高德,1050=淘宝,1051=天猫精灵,1053=香港版支付宝,1055=mpaas,1096=支付宝iot,3727=阿里车 | 1032,1096 |
promoter_master_name | 否 | 订购关联推广商主账号名称 | 某某服务商名称 |
promoter_master_pid | 否 | 订购关联推广商主账号pid | 2088xxxxx |
查询订单详情
服务商调用 接口,传入通知中订单 id(commodity_order_id)回查该订单明细信息,如:订单状态、商家pid、商家名称等。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderqueryrequest request = new alipayopenservicemarketorderqueryrequest(); request.setbizcontent("{" "\"commodity_order_id\":\"20160010200000000033400\"," "\"start_page\":\"1\"" " }"); alipayopenservicemarketorderqueryresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
服务商接单
在商家订购后,服务商需要确认商家信息。确认接单,可调用 (服务商接单操作)接口,传入订单 id(commodity_order_id)。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderacceptrequest request = new alipayopenservicemarketorderacceptrequest(); request.setbizcontent("{" " \"commodity_order_id\":\"201604060043410106\"" "}"); alipayopenservicemarketorderacceptresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
服务商拒绝接单
若服务商拒绝该订单服务,可调用 (服务商拒绝接单)接口,传入订单 id(commodity_order_id)拒绝接单。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderrejectrequest request = new alipayopenservicemarketorderrejectrequest(); request.setbizcontent("{" " \"commodity_order_id\":\"20160010200000000033400\"," " \"reject_reason\":\"暂不支持该地区服务\"" "}"); alipayopenservicemarketorderrejectresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
服务商取消实施服务
若服务商接单后,若无法为商家实施服务,需调用 (服务订单明细实施项单项取消)接口取消实施服务,调用接口后订单取消,自动退费给商家。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderitemcancelrequest request = new alipayopenservicemarketorderitemcancelrequest(); request.setbizcontent("{" "\"commodity_order_id\":\"20160010200000000033400\"," "\"shop_id\":\"2015052000077000000000182140\"," "\"mini_app_id\":\"2017121800945174\"," "\"cancel_reason\":\"该门店暂无法实施完成\"" " }"); alipayopenservicemarketorderitemcancelresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
服务商完成实施服务
服务商在完成实施服务后,调用 (服务商完成订单内单个明细实施项)接口,将订单状态推进到 待商家确认 状态。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderitemcompleterequest request = new alipayopenservicemarketorderitemcompleterequest(); request.setbizcontent("{" "\"commodity_order_id\":\"20160010200000000033400\"," "\"shop_id\":\"2015052000077000000000182140\"," "\"mini_app_id\":\"2017121800945174\"" " }"); alipayopenservicemarketorderitemcompleteresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
代商家确认完成实施
在商家应用授权给服务商的第三方应用后,服务商可调用 (服务商代商家确认实施完成)接口,代商家确认完成实施操作,确认后订单推进到 订单完结 状态。
注意:仅限 免费 服务可调用代商家确认完成实施接口。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketorderitemconfirmrequest request = new alipayopenservicemarketorderitemconfirmrequest(); request.setbizcontent("{" "\"commodity_order_id\":\"20160010200000000033400\"," "\"shop_id\":\"2015052000077000000000182140\"," "\"mini_app_id\":\"2017121800945174\"" " }"); alipayopenservicemarketorderitemconfirmresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
上架门店插件(口碑服务市场)
服务商调用 (门店插件上架操作)接口,在商家门店中上架插件服务。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketcommodityshoponlinerequest request = new alipayopenservicemarketcommodityshoponlinerequest(); request.setbizcontent("{" " \"commodity_id\":\"201511020002630060\"," " \"shop_id\":\"2015052000077000000000182140\"" "}"); alipayopenservicemarketcommodityshoponlineresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
下架门店插件(口碑服务市场)
服务商调用 (门店插件下架操作)接口,在商家门店中下架插件服务。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketcommodityshopofflinerequest request = new alipayopenservicemarketcommodityshopofflinerequest(); request.setbizcontent("{" " \"commodity_id\":\"20160010200000000033400\"," " \"shop_id\":\"2015052000077000000000182140\"" "}"); alipayopenservicemarketcommodityshopofflineresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }
服务商查询推广关系
服务商调用 (服务商推广关系查询)接口,传入服务id(commodity_id),可查询该服务的地推服务商的信息。
示例代码
alipayclient alipayclient = new defaultalipayclient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","gbk","alipay_public_key","rsa2"); alipayopenservicemarketpromotiontaskrelationqueryrequest request = new alipayopenservicemarketpromotiontaskrelationqueryrequest(); request.setbizcontent("{" " \"commodity_id\":\"ss010101000000003954\"," " \"page_size\":10," " \"page_num\":1" "}"); alipayopenservicemarketpromotiontaskrelationqueryresponse response = alipayclient.execute(request); if(response.issuccess()){ system.out.println("调用成功"); } else { system.out.println("调用失败"); }