# park-pay-server **Repository Path**: jdragonhu/park-pay-server ## Basic Information - **Project Name**: park-pay-server - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-06-21 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 停车场本地自助缴费服务接口 ## 基础框架 - SpringBoot - SpringMVC - JsonRpc4j ## 子项目说明 - park-pay-api 接口定义 - park-pay-http 服务实现和业务逻辑实现,实现接口定义 - park-pay-test 模拟调用端,请求服务数据 ## 部署方法 - 在根目录/,运行mvn package,得到jar包 - 将/park-pay-http/target/park-pay-http.jar,复制到/deploy中,该文件大约有16M - 配置/deploy/application.properties中的数据库连接等信息 - 运行/deploy/serviceinstall.bat,注册服务,如果是64位java,需要修改javaService.exe文件为64位文件 - 运行/deploy/start.bat启动服务,可以在系统日志中查看无法启动的错误信息 - 系统的日志,会自动放入到/deploy/logs/selfpayhttp.log文件中 ## 支持服务(Http) ### 查询车辆和停车费:http://localhost:8082/parking/getCarMarchInRecordAndFee #### 输入 ```java public JsonResult getCarMarchInRecordAndFee(String carNum) throws UnsupportedEncodingException ``` #### 输出 ```java public class JsonResult { public boolean isSuccess() { return success; } public void setSuccess(boolean success) { this.success = success; } public String getErrorMsg() { return errorMsg; } public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } private boolean success; private String errorMsg; private Object data; private JsonResult() { } public static JsonResult create(boolean success, String errorMsg, Object data) { JsonResult result = new JsonResult(); result.success = success; result.errorMsg = errorMsg; result.data = data; return result; } } ``` ```java public class ParkRecord { private String marchInId; //停车记录id private String carNum; //车牌号 private String marchInDate; //进入时间 private String marchOutDate; //当前时间,精确到秒的字符串,20160610101110 private double money; //应付金额 private String marchInPhotoUrl; //图片路径,系统内存储的路径,外部系统可能需要映射到额外的共享目录 } ``` ### 缴费: http://localhost:8082/parking/uploadCarFeeRecord #### 输入 ```java public class CarFeeRecord { private String marchInId; private Double money; private String systemId; private String tradeNum; private String paymentMethod; private String operator; } ``` #### 输出 ```java public JsonResult uploadCarFeeRecord(CarFeeRecord carFeeRecord) { String content =""; boolean isSuc = false; String errorMsg = ""; try{ parkPayService.uploadCarFeeRecord(carFeeRecord); logger.info("pay success for {}.", carFeeRecord.toString()); isSuc=true; content = "缴费成功!"; }catch(ParkException e){ logger.error("pay error.", e); // e.printStackTrace(); content = e.getMessage(); errorMsg = e.getMessage(); isSuc=false; } return JsonResult.create(isSuc, errorMsg, PayResult.create(content)); } ``` ### 停车入场图片服务:http://localhost:8082/parking/image?id=xxx-xxx-xxx-xxx #### 输入,ParkRecord对象的marchInId(停车记录id) #### 输出,输出contentType='image/jpeg'的图像实体内容 ## 支持服务(JSONRpc) - test服务,访问地址:http://localhost:8082/test,接口标准见:com.cetcparking.parkpay.api.TestService - pay服务,访问地址:http://localhost:8082/pay,接口标准见:com.cetcparking.parkpay.api.ParkPayService ## JsonRPC支持 ``` --> {"jsonrpc": "2.0", "method": "subtract", "params": {"subtrahend": 23, "minuend": 42}, "id": 3} <-- {"jsonrpc": "2.0", "result": 19, "id": 3} --> {"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 4} <-- {"jsonrpc": "2.0", "result": 19, "id": 4} --> {"jsonrpc": "2.0", "method": 1, "params": "bar"} <-- {"jsonrpc": "2.0", "error": {"code": -32600, "message": "Invalid Request"}, "id": null} ``` ## jsonrpc4j - 支持类库:https://github.com/briandilley/jsonrpc4j