接下来详细介绍自建交易服务的完整流程,包括账号、服务商品发布、交易订单流程、交易分账。服务端完整demo:点击下载。
开发者需要将自有账号与百川进行映射,获取到百川的Open ID,以此作为交易实施的用户对象。开发者主要通过以下接口实现百川账号的创建映射(接口返回百川的Open ID供开发者关联)、修改和查询功能。
API名称 |
功能 |
百川账号批量创建或导入使用,提供拓展字段,可以存储需要的账号数据。 |
|
提供账户信息批量修改功能。 |
|
提供账户批量查询功能 |
百川提供了提供的独立账户注册、登录、管理的基础能力,开发者可以使用完整的百川云账号功能,包括:新账号注册、ISV已有账号体系集成、第三方社交平台开放账号体系。详细说明: 点击查看 。
开发者需要传入商品,作为交易的内容。这个“商品”可以是实物商品,也可以是服务或代表服务的形式,比如洗车券、服装干洗服务、代驾服务等。详细说明:点击查看
添加成功,接口会返回唯一商品标识 item_id。创建百川交易订单时,传入商品item_id,系统就能自动同步商品相关信息交易订单中。
接口入参json示例:
{"_sys":{"category": ["美食餐饮", "咖啡厅"],"title": "测试商品123","price": 123.00},"自定义key1":"自定义value1","自定义key2":"自定义value2"} 其中类目category参数,具体参考:点击查看
详细使用说明:点击查看,API列表如下:
API名称 |
功能 |
百川轻商品发布,可以传入商品标题、类别、价格、库存、状态、拓展字段等。 |
|
预生成商品id |
|
轻商品修改 |
|
轻商品状态修改,启用/失效 |
|
轻商品增加库存 |
|
轻商品扣减库存 |
|
轻商品单条查询 |
百川提供了创建订单、更新订单状态的API接口,供开发者根据自身的交易流程来同步各订单节点。在付款环节,可以使用百川SDK的支付接口进行支付宝付款功能。
通过调用 订单创建API taobao.open.order.create 需要传入字段商品item_id、买家open_id、订单金额amount、扩展数据字段等参数,也能创建百川订单,返回相应order_id;创建百川交易订单,提供了服务端API,此时创建订单状态是初始化状态。
在订单的特定阶段,可调用taobao.open.order.update修改订单信息、更新订单节点状态。
INIT未付款(订单创建后的初始状态)—>PAID已付款—>FINISHED已完结—> SETTLING分账中—> SETTLED已分账成功
订单状态不可逆向更改,要点说明如下:
API名称 |
功能 |
交易订单创建 |
|
交易订单更新,主要用来修改订单状态和订单金额 |
|
单条交易订单查询 |
|
批量交易订单查询 |
注意:所有交易接口字段中的订单金额单位都是分。
调用百川客户端SDK中的支付接口 OpenTradeService.showPayOrder,传入订单order_id、实际付款金额actual_paid,可以直接唤起支付宝进行付款;付款成功后,对应的order_id状态会自动变成已付款状态;若不使用百川SDK的支付接口,也可在使用其余方式支付成功后,调用订单信息同步接口taobao.open.order.update将订单状态置为PAID。
详细方法如下:考虑到支付的安全性,使用该接口必须进行登录的Token验证。
步骤一:通过接口taobao.open.account.token.apply生成Token,因为token涉及到开发者自身的隐私数据,请在服务端来生成token 。
步骤二:再把生成的token传给客户端,在客户端中使用Token参数调用AliSDK tokenLogin方法传递给百川服务端,百川服务端会验证Token的正确性并设置登录态,回调开发者客户端。
一般传入open_account_id 参数生成token即可,注意生成的token,验证的有效时间只有1分钟,否则 tokenLogin 验证会判断token无效。
showPayOrder方法示例:
/**
* 显示OpenTrade订单支付
* @param activity 当前Activity,不能为空
* @param orderId OpenTrade订单ID,不能为空 ,由百川创建订单接口生成的百川订单号。
* @param isvOrderId ISV 订单ID,可以为空,开发者自有系统的外部订单号。
* @param outPayId ISV 支付ID,用于避免重复支付,可以为空,开发者自有系统的外部支付号。
* @param amount 支付金额,单位 分
* @param timeout 超时时间,一旦超时,该笔交易就会自动 被关闭。取值范围:1m~15d,或者使 用绝对时间(示例格式: 2014-06-13 16:00:00)
* ,m-分钟,h-小时,d-天,1c- 当天(无论交易何时创建,都 在 0 点关闭)
* @param callback 回调接口
*/
public void showPayOrder(Activity activity, Long orderId, String isvOrderId, String outPayId
, long amount, String timeout , TradeProcessCallback callback);
只有使用百川SDK支付接口进行付款的交易订单,才发起百川退款流程。
调用退款API taobao.open.order.payment.refund,传入订单order_id,退款金额actual_refund,即可完成退款操作,退款资金会延用用户在支付宝的付款路径原路退回(实际资金到账时间取决与支付宝处理时间);退款完成后,交易订单状态变为已退款。
注意:退款操作可以操作多次,但是多次退款金额actual_refund 之和 ≤ 实际付款金额actual_paid,API调用成功既退款,请慎重操作;
使用百川Open Trade在订单创建成功、百川支付接口进行订单支付成功、订单退款成功等订单状态发生变更时, 我们会提供异步消息通知。在同步返回超时的情况下,开发者可以接收异步消息进行补偿。
消息类型:
订单创建通知 | taobao_opentrade_OrderCreated | |
付款成功通知 | taobao_opentrade_PayOrderProceed | |
付款失败通知 | taobao_opentrade_PayOrderFailed | |
付款创建通知 | taobao_opentrade_PayOrderCreated | |
订单更新完成通知 | taobao_opentrade_OrderModified |
消息通知功能介绍,点此查看 。