描述:

  • 工单状态发送变更,大鱼主动调用商家提供的回调接口

接口

请参考demo方法:DemoController.orderProgress

商家提供回调地址,如:
POST http://uat.kf.ai:8181/demo/dayuCallback/orderProgress

{
  "createTime": "2024-10-11 10:25:24",
  "orderId": 5577,
  "orderRecord": {
    "commentInfo": "工单备注的内容",
    "commentName": "工单备注",
    "createTime": "2024-10-11 10:25:24",
    "operation": "工单创建",
    "operationComment": "admin 通过 新建工单 创建了工单",
    "serviceProgessTimeNum": 0
  },
  "status": 8
}
{
  "createTime": "2024-10-11 10:26:12",
  "orderId": 5577,
  "orderRecord": {
    "createTime": "2024-10-11 10:26:12",
    "operation": "工单改派",
    "operationComment": "admin指定师傅李缘圆抢单",
    "serviceProgessTimeNum": 1
  },
  "status": 1
}
{
  "createTime": "2024-10-11 10:30:58",
  "orderId": 5577,
  "orderNum": "SP20241011102524000001",
  "orderRecord": {
    "createTime": "2024-10-11 10:30:58",
    "operation": "师傅接单",
    "operationComment": "师傅李缘圆  接单",
    "serviceProgessTimeNum": 2
  },
  "status": 2
}
{
  "confirmDoorComment": "预约备注",
  "confirmDoorTime": "2024-10-11 12:00:00",
  "createTime": "2024-10-11 10:31:02",
  "orderId": 5577,
  "orderRecord": {
    "commentInfo": "预约时间:2024-10-11 12:00:00 ",
    "commentName": "预约时间及备注",
    "createTime": "2024-10-11 10:31:02",
    "operation": "预约确认",
    "operationComment": "师傅李缘圆进行客户预约",
    "serviceProgessTimeNum": 3
  },
  "status": 3,
  "subStatus": 1
}
{
  "createTime": "2024-10-11 10:31:09",
  "orderId": 5577,
  "orderRecord": {
    "commentName": "查看位置",
    "createTime": "2024-10-11 10:31:09",
    "latitude": 40.03554,
    "longitude": 116.303276,
    "operation": "开始服务",
    "operationComment": "师傅李缘圆  开始服务",
    "serviceProgessTimeNum": 5
  },
  "status": 4
}
{
  "createTime": "2024-10-11 10:31:41",
  "orderId": 5577,
  "orderNum": "SP20241011102524000001",
  "orderRecord": {
    "commentInfo": "7832",
    "commentName": "服务记录",
    "createTime": "2024-10-11 10:31:40",
    "operation": "服务记录",
    "operationComment": "师傅李缘圆完成“随便复制一手” 1次",
    "serviceProgessTimeNum": 6
  },
  "status": 4,
  "subStatus": 1
}
{
  "createTime": "2024-10-11 10:31:52",
  "esignatureImg": "https://dl.kf.ai/test/sp/mobile/ios/business/checkApply/61421f9260829adc3a3c58f0062b7337.JPG",
  "orderId": 5577,
  "orderRecord": {
    "commentName": "",
    "createTime": "2024-10-11 10:31:52",
    "operation": "提交验收",
    "operationComment": "师傅李缘圆  提交验收",
    "serviceProgessTimeNum": 7
  },
  "status": 4,
  "subStatus": 6
}
{
  "createTime": "2024-10-11 10:32:02",
  "orderId": 5577,
  "orderRecord": {
    "commentInfo": "",
    "createTime": "2024-10-11 10:32:02",
    "operation": "商家验收",
    "operationComment": "商家admin 进行了验收服务",
    "serviceProgessTimeNum": 8
  },
  "status": 5
}
{
  "createTime": "2024-10-11 10:48:09",
  "orderId": 5578,
  "orderRecord": {
    "commentInfo": "返工意见",
    "commentName": "",
    "createTime": "2024-10-11 10:48:09",
    "operation": "重新返工",
    "operationComment": "admin 将该工单处理为验收不通过,需重新服务",
    "serviceProgessTimeNum": 9
  },
  "status": 4,
  "subStatus": 6
}
{
  "cancelOrderReason": "取消原因a",
  "createTime": "2024-10-11 10:49:30",
  "orderId": 5548,
  "orderRecord": {
    "commentInfo": "取消原因a",
    "commentName": "取消原因",
    "createTime": "2024-10-11 10:49:30",
    "operation": "工单取消",
    "operationComment": "admin 取消了工单",
    "serviceProgessTimeNum": 10
  },
  "status": 6
}
字段名 类型 长度 说明
orderId long 20 服务单ID
status int 11 服务单状态:8.待派单 1.待接单 2.未预约 3.已预约 4.进行中 5.已完成 6.已取消(注意,状态和大鱼SPM系统页面不是一一对应的,页面中待服务列表包含:未预约、已预约和进行中;已完成包含:已完成和取消)
subStatus int 11 子状态:当status=4进行中时:6.表示已提交验收申请,status为其它值时暂无其它意义
serviceProgessTimeNum int 4 进程时刻:0.创建 1.指派/改派服务单 2.师傅接单 3.预约确认 5.开始服务 6.服务记录 7.提交验收 8.大鱼验收 9.重新服务 10.取消

签名 sign 验证

通过 header 属性 Dayu-Sign ,获取签名字段。

采用RSA的SHA1WithRSA签名算法
验证签名方法:

    public static boolean verify(String content, String sign, String public_key, String input_charset) {
        try {
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            byte[] encodedKey = Base64.decode(public_key);
            PublicKey pubKey = keyFactory.generatePublic(new X509EncodedKeySpec(encodedKey));
            Signature signature = Signature.getInstance("SHA1WithRSA");
            signature.initVerify(pubKey);
            signature.update(content.getBytes(input_charset));
            return signature.verify(Base64.decode(sign));
        } catch (Exception var8) {
            var8.printStackTrace();
            return false;
        }
    }
    //验证,content格式: orderId=xx&serviceProgessTimeNum=xx格式
    boolean verify = RSA.verify("orderId=85006&serviceProgessTimeNum=1", sign, PUBLIC_KEY, "UTF-8");

(public_key 公钥找大鱼云服技术获取)

文档更新时间: 2024-10-11 14:23   作者:大鱼研发