/// <summary> /// 查询停车费用 /// 1001 订单获取成功,业务参数将返回。 /// 1002 未查询到停车信息。 /// 1003 月卡车辆,不允许缴费。 /// 1500 接口处理异常。 /// /// // 获取订单代码 /// if (card 不合法 && !plate 合法) { /// return 1400; // 返回参数错误 /// } /// // 1. 检查订单 /// ParkingOrder parking = 获取停车记录(card, plate) // 根据车牌或停车卡获取停车记录 /// if (parking 已出场) { /// return 1002; // 无停车记录 /// } /// // 2. 检查是否月卡、次卡等非临停用户 /// if (parking 非临停) { /// return 1003; // 非临停,返回无需支付停车费 /// } /// // 3. 检查收费情况 /// if (parking 无需交费) { /// return parking; // 返回停车订单,不含支付单号,包含停车流水 /// } /// // 4. 填充订单数据, 若有优惠,则填充优惠信息; /// ParkingBilling billing = 生成停车订单; /// parking.parking_order = billing.serial; // 支付流水... /// parking.pay_value = billing.value; // 实际支付金额 /// /// return parking; // 返回支付订单。 /// /// </summary> /// <param name="request"></param> /// <returns></returns> public override APIReply <ParkingBilling> ParkingBilling(ParkingBillingRequest request) { if (request.Plate == null) { return(APIReply <ParkingBilling> .newBuilder() .setResultCode(ResultCode.BadRequest) .setMessage("车牌号码无效") .Build()); } // ParkingBilling payload = new ParkingBilling(); payload.EnterFreeTime = 15 * 60; // 单位秒 payload.BufferTime = 10 * 60; // 单位秒 payload.EnterTime = DateTime.Now; payload.Plate = "粤B660PP"; payload.ParkingSerial = "12"; payload.ParkingOrder = DateTime.Now.ToString("yyyyMMddHHmmss") + RandomUtil.RandomNumeric(6); payload.ParkingTime = 90 * 60; // 单位秒 payload.TotalValue = 1000; payload.FreeValue = 0; payload.PaidValue = 0; payload.PayValue = 1000; return(APIReply <ParkingBilling> .newBuilder() .setResultCode(ResultCode.Success) .setPayload(payload) .setMessage("成功") .Build()); }
/// <summary> /// 同步场中支付结果 /// 1001 接口处理成功,业务参数将返回。 /// 1403 订单已撤销。 /// 1500 接口内部处理失败。 /// /// // 1. 根据parking_order查询订单。 /// ParkingPayment payment = 根据parking_order查询订单 /// if (payment == null) { /// return 1002; // 未找到订单信息 /// } elseif (payment 已成功处理) { /// return 1001; // 返回处理成功 /// } /// // 2. 根据parking_serial查询停车信息。 /// ParkingOrder parking = 获取停车记录(parking_serial); /// if (parking 已离场) { /// retuen 1403; // 返回订单撤销,我们会根据这个状态核对订单,如果需要办理退款,我们会办理。 /// } /// // 3. 检查订单是否为最新订单,我们需要保证用户支付的最新订单,才能保证支付金额足够 /// if (payment 非本次停车最新订单) { /// return 1403; // 返回订单撤销,我们会根据这个状态核对订单,如果需要办理退款,我们会办理。 /// } /// // 4. 更新订单状态并更新总支付金额。 /// update(parking); /// /// return 1001; // 返回处理成功 /// </summary> public override APIReply <object> ParkingPayment(ParkingPaymentRequest request) { if (request.ParkingSerial == null) { return(APIReply <object> .newBuilder() .setResultCode(ResultCode.BadRequest) .setMessage("参数无效") .Build()); } return(APIReply <object> .newBuilder() .setResultCode(ResultCode.Success) .Build()); }
/// <summary> /// 查询月卡信息 /// 1001 获取成功,业务参数将返回。 /// 1002 没有查到相关贵宾记录。 /// 1500 接口处理异常。 /// </summary> public override APIReply <ParkingVIPPayload> ParkingVIPQuery(ParkingVIPQueryRequest request) { ParkingVIPPayload payload = new ParkingVIPPayload(); List <ParkingVIP> Vips = new List <ParkingVIP>(); ParkingVIP item = new ParkingVIP(); item.Balance = 10; Vips.Add(item); payload.SetVips(Vips); return(APIReply <ParkingVIPPayload> .newBuilder() .setPayload(payload) .setResultCode(ResultCode.Success) .setMessage("NOT IMPLEMENT YET") .Build()); }