# 前言
本教程是基于 “apifm-wxapi” 模块,教你快速实现小程序开发,所以你可能需要先了解以下知识点:
[《创建 HelloWorld 项目》](https://www.yuque.com/apifm/doc/hezlrm)
[《使用 “apifm-wxapi” 快速开发小程序》](https://www.yuque.com/apifm/doc/mdldsd)
[《免费注册开通后台,获得专属域名》](https://www.yuque.com/apifm/doc/qr6l4m)
本案例中,部分功能,需要用户登录后才能操作,也就是说需要 token 授权,请先了解:
[《微信小程序登录获取openid及三方token》](https://www.yuque.com/apifm/doc/kaygbw)
本例需要商品功能支持,没有商品何来订单呢,所以你要先了解:
[《使用 apifm-wxapi 开发微信小程序之门店/分类/商品/收藏》](https://www.yuque.com/apifm/doc/excd2w)
# 需要启用的模块
登录 “第一步” 注册的后台,左侧菜单 --> 工厂设置 --> 模块管理
找到并启用下述模块,然后 F5 刷新一下后台界面,你将可以看到本案例所需的所有功能菜单:
_本案例菜单为 “商城管理” --> “订单管理” + “评价管理”_
1. 订单管理
2. 退换货/售后
---
### 创建订单
```javascript
WXAPI.orderCreate(Object object)
```
> 下单功能,具体参数说明请查看api接口文档
>
> calculate 参数传 true 可以实现预下单,预下单不会真正下单,而是会返回是否允许下单,以及费用[货款、运费]金额的计算
>
### 关闭订单
```javascript
WXAPI.orderClose(token, orderId)
```
### 删除订单
```javascript
WXAPI.orderDelete(token, orderId)
```
> 用户删除订单,只是用户自己看不到,管理员在后台还是可以看到该订单的
>
### 支付订单[使用余额]
```javascript
WXAPI.orderPay(token, orderId)
```
> 使用用户的钱包余额完成订单的支付
>
> 如果使用微信在线支付完成订单支付,请回顾 「微信在线支付章节」 ,通过传递 nextAction 参数实现
>
### 确认收货
```javascript
WXAPI.orderDelivery(token, orderId)
```
> 管理员针对下单进行发货操作,用户在确认收到包裹检查无误后,通过该方法来确认本次订单的收货
>
> 确认收货后,订单将进入评价阶段,用户可实事求是的针对本次购物体验进行评价、买家秀截图等等
>
### 订单核销
```javascript
WXAPI.orderHX(hxNumber)
```
> hxNumber 为核销码,所以请妥善保管,商家依据核销码进行核销
>
> 订单默认不会生成核销码,如果需要开启核销功能,请在创建订单方法参数中增加 isCanHx=true
>
> 核销后,订单即交易成功,转为待评价状态
>
### 订单汇总统计
```javascript
WXAPI.orderStatistics(token)
```
> 订单统计,用以显示订单统计或者是订单类型小红点,该方法将会返回一下几个数据:
>
1. count_id_no_pay: 待支付订单数量
2. count_id_no_transfer: 已支付等待商家发货订单数量
3. count_id_no_confirm: 商家已发货,等待确认收货订单数量
4. count_id_no_reputation: 交易成功,等待评价的订单数量
5. count_id_success: 交易成功,且已评价的订单数量
6. count_id_close: 关闭的订单数量
### 获取所有订单
```javascript
WXAPI.orderList(Object object)
```
> 具体参数请查阅api接口文档
>
> 可根据订单状态、好差评等条件筛选进行分页显示
>
### 订单详情
```javascript
WXAPI.orderDetail(token, id)
```
> 读取订单详情数据:订单信息、购物清单、订单日志记录、物流跟踪信息、库存明细、扩展属性
>
> 根据你自己的需要进行UI设计及合理展示
>
### 评价接口
```javascript
WXAPI.orderReputation(Object object)
```
> 订单评价,进行 好、中、差评;留言备注;截图买家秀
>
> 具体参数请查阅接口文档说明
>
### 申请退换货[售后]
```javascript
WXAPI.refundApply(Object object)
```
> 用户维权通道,通过该方法实现订单的退款、退货、换货等售后处理
>
> 具体参数请查阅接口文档说明
>
### 申请退换货详情
```javascript
WXAPI.refundApplyDetail(token, orderId)
```
> 用以展示退换货详细数据
>
### 撤销退换货申请
```javascript
WXAPI.refundApplyCancel(token, orderId)
```
> 撤销 / 取消 维权
>
### 拉取某订单的所有售后记录
```javascript
WXAPI.orderRefunds(token, orderId)
```
> 一个订单允许多次退换货,该方法可以拉取到所有的售后记录
>
**关于更加详细的参数使用,以及更加高级的进阶使用方法,可以参考api接口文档说明:**
[《api接口文档》](https://api.it120.cc/doc.html)
_关于 apifm-wxapi 更多的使用方法:_
[《apifm-wxapi使用说明》](https://github.com/gooking/apifm-wxapi/blob/master/instructions.md)
_本案例Demo代码下载:_
[《apifm-wxapi使用Demo程序》](https://github.com/gooking/apifm-wxapi-demo)
期待你的进步!
感谢!