交易功能集成

更新时间:2015/10/22 访问次数:52548

接下来详细介绍自建交易服务的完整流程,包括账号、服务商品发布、交易订单流程、交易分账。服务端完整demo:点击下载

1、账号映射

1.1 APP已有账号体系  

开发者需要将自有账号与百川进行映射,获取到百川的Open ID,以此作为交易实施的用户对象。开发者主要通过以下接口实现百川账号的创建映射(接口返回百川的Open ID供开发者关联)、修改和查询功能。 

API名称

功能

taobao.open.account.create

百川账号批量创建或导入使用,提供拓展字段,可以存储需要的账号数据。

taobao.open.account.update

提供账户信息批量修改功能。

taobao.open.account.list

提供账户批量查询功能

1.2 APP暂无账号体系 

百川提供了提供的独立账户注册、登录、管理的基础能力,开发者可以使用完整的百川云账号功能,包括:新账号注册、ISV已有账号体系集成、第三方社交平台开放账号体系。详细说明: 点击查看

2、商品发布 

开发者需要传入商品,作为交易的内容。这个“商品”可以是实物商品,也可以是服务或代表服务的形式,比如洗车券、服装干洗服务、代驾服务等。详细说明:点击查看

2.1 通过 taobao.open.item.publish 进行商品发布。

添加成功,接口会返回唯一商品标识 item_id。创建百川交易订单时,传入商品item_id,系统就能自动同步商品相关信息交易订单中。

 

接口入参json示例:

{"_sys":{"category": ["美食餐饮", "咖啡厅"],"title": "测试商品123","price": 123.00},"自定义key1":"自定义value1","自定义key2":"自定义value2"}    其中类目category参数,具体参考:点击查看

详细使用说明:点击查看,API列表如下: 

API名称

功能

taobao.open.item.publish

百川轻商品发布,可以传入商品标题、类别、价格、库存、状态、拓展字段等。

taobao.open.item.id.generate

预生成商品id

taobao.open.item.modify

轻商品修改

taobao.open.item.status.modify

轻商品状态修改,启用/失效

taobao.open.item.inventory.incr

轻商品增加库存

taobao.open.item.inventory.decr

轻商品扣减库存

taobao.open.item.get

轻商品单条查询

3、下单支付 

百川提供了创建订单、更新订单状态的API接口,供开发者根据自身的交易流程来同步各订单节点。在付款环节,可以使用百川SDK的支付接口进行支付宝付款功能。

3.1 创建订单

通过调用 订单创建API taobao.open.order.create 需要传入字段商品item_id、买家open_id、订单金额amount、扩展数据字段等参数,也能创建百川订单,返回相应order_id;创建百川交易订单,提供了服务端API,此时创建订单状态是初始化状态。

3.2 订单信息同步 

在订单的特定阶段,可调用taobao.open.order.update修改订单信息、更新订单节点状态。

Part1 订单状态说明

INIT未付款(订单创建后的初始状态)—>PAID已付款—>FINISHED已完结—> SETTLING分账中—> SETTLED已分账成功

订单状态不可逆向更改,要点说明如下:

  • INIT未付款—>PAID已付款:使用百川SDK的支付功能支付订单时,订单状态会自动从INIT变为PAID;若交易使用其它支付方式完成支付,开发者可以调用taobao.open.order.update将订单置为“已付款”。
  • PAID已付款—>FINISHED已完结:订单服务完成后,可以调用接口将订单置为“已完结”。已完结状态的订单不能做除订单金额amount之外的修改的操作,比如不能再发起退款、修改状态等操作。只有状态为“已完结”的订单才支持分账。
  • FINISHED已完结—> SETTLING分账中:调用触发分账接口,订单状态自动变为“分账中”。已分账的订单不可修改任何订单信息。
  • SETTLING分账中—> SETTLED已分账成功:当分账资金完成打款时,订单状态自动变为“已分账成功”。  

Part2 订单信息说明  

  • 订单金额amount:是开发者自己设置的一个订单金额,可以和实付付款金额不同,在进行分账操作的时,以这个字段中的总金额进行分账,所以请慎重操作这个字段。
  • 实际付款金额actual_paid:只有用百川SDK唤起支付接口,才会传入这个字段,并且记录用户实际支付的金额,如果使用其他平台或者线下方式支付,这个字段为空。
  • 退款金额actual_refund:同上,只有通过百川SDK 支付接口进行支付的订单,发生退款后,才有具体数值。   

API名称

功能

taobao.open.order.create

交易订单创建

taobao.open.order.update

交易订单更新,主要用来修改订单状态和订单金额

taobao.open.order.get

单条交易订单查询

taobao.open.order.list

批量交易订单查询

注意:所有交易接口字段中的订单金额单位都是分。

3.3 订单支付

调用百川客户端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);

 

3.4 发起退款

只有使用百川SDK支付接口进行付款的交易订单,才发起百川退款流程。

调用退款API taobao.open.order.payment.refund,传入订单order_id,退款金额actual_refund,即可完成退款操作,退款资金会延用用户在支付宝的付款路径原路退回(实际资金到账时间取决与支付宝处理时间);退款完成后,交易订单状态变为已退款。

注意:退款操作可以操作多次,但是多次退款金额actual_refund 之和 ≤ 实际付款金额actual_paid,API调用成功既退款,请慎重操作;  

3.5 订单状态消息推送

 使用百川Open Trade在订单创建成功、百川支付接口进行订单支付成功、订单退款成功等订单状态发生变更时, 我们会提供异步消息通知。在同步返回超时的情况下,开发者可以接收异步消息进行补偿。

消息类型: 

订单创建通知         taobao_opentrade_OrderCreated
付款成功通知   taobao_opentrade_PayOrderProceed
付款失败通知   taobao_opentrade_PayOrderFailed
付款创建通知   taobao_opentrade_PayOrderCreated
订单更新完成通知   taobao_opentrade_OrderModified

消息通知功能介绍,点此查看 。

 

FAQ

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