数据向核心平台推送
diff --git a/config/application-devel-pg.properties b/config/application-devel-pg.properties
index 7760e30..22ed8fd 100644
--- a/config/application-devel-pg.properties
+++ b/config/application-devel-pg.properties
@@ -26,4 +26,7 @@
payapi.url=https://yy.dlsmk.cn/payapi
-payapi.appid=200001
\ No newline at end of file
+payapi.appid=200001
+
+cron.offlinedtl=0/30 * * * * ?
+payapi.logintime=0 0/20 * * * ?
\ No newline at end of file
diff --git a/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
new file mode 100644
index 0000000..a4cc8ed
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/AppLoginRunner.java
@@ -0,0 +1,52 @@
+package com.supwisdom.dlpay;
+
+import com.supwisdom.dlpay.framework.dao.BusinessparaDao;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+@Component
+@Configuration //1.主要用于标记配置类,兼备Component的效果。
+@EnableScheduling // 2.开启定时任务
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class AppLoginRunner implements ApplicationRunner {
+ private static final Logger logger = LoggerFactory.getLogger(AppLoginRunner.class);
+
+ @Autowired
+ private ApiLoginProxy apiLoginProxy;
+ @Autowired
+ private BusinessparaDao businessparaDao;
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ logger.info("登录核心平台");
+ doLogin();
+ }
+
+
+ @Scheduled(cron = "${payapi.logintime}")
+ private void doLogin() {
+ String appid=businessparaDao.findByParakey("payapi.appid").getParaval();
+ String secret=businessparaDao.findByParakey("payapi.secret").getParaval();
+ if(StringUtil.isEmpty(appid)||StringUtil.isEmpty(secret)){
+ logger.info("业务参数appid或secret未配置");
+ return;
+ }
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid, secret);
+ logger.info("登录成功");
+ }
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
index 6e4c958..c443ae8 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PayApiServiceImpl.java
@@ -16,9 +16,9 @@
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Service;
-
+/*
@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
-@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})*/
@Service
public class PayApiServiceImpl implements PayApiService {
@@ -39,20 +39,7 @@
@Override
public CitizenPayResponse citizencardPayinit(CitizenCardPayinitParam param) {
- CitizenPayResponse resp=new CitizenPayResponse();
- if(StringUtil.isEmpty(appid)){
- resp.setRetmsg("请在配置文件中配置appid");
- resp.setRetcode(99);
- }
- ApiLoginHelper helper=new ApiLoginHelper(apiLoginProxy);
- TApiClient client=apiClientDao.findByAppid(appid);
- if(null==client){
- resp.setRetmsg("未找到对应客户号");
- resp.setRetcode(99);
- }
- helper.login(appid, client.getSecret());
- resp = citizenCardPayProxy.citizencardPayinit(param);
-
+ CitizenPayResponse resp = citizenCardPayProxy.citizencardPayinit(param);
return resp;
}
diff --git a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
index 5a489e1..1e1146a 100644
--- a/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/api/service/impl/PosPayServiceImpl.java
@@ -205,16 +205,7 @@
tTransdtl.setCustname("");
}
- TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
-
-/* CitizenCardPayinitParam param=new CitizenCardPayinitParam();
- param.setBillno(dtl.getBillno());
- param.setShopaccno(dtl.getShopid());
- param.setTransdate(dtl.getTransdate());
- param.setTranstime(dtl.getTranstime());
- param.setCardNo(dtl.getCardno());
- param.setAmount(0);
- CitizenPayResponse response=payApiService.citizencardPayinit(param);*/
+ transDtlService.saveTransdtl(tTransdtl);
resp.setBillno(tTransdtl.getBillno());
resp.setRetcode(ErrorCode.ERRIF_OK);
resp.setAnonymous(false);
@@ -260,24 +251,47 @@
tTransdtl.setAmount(req.getAmount() / 100.0);
tTransdtl.setManagefee(extamount / 100.0);
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_WAIT);
- transDtlService.saveTransdtl(tTransdtl);
+ TTransDtl dtl=transDtlService.saveTransdtl(tTransdtl);
+ CitizenCardPayinitParam param=new CitizenCardPayinitParam();
+ param.setBillno(dtl.getBillno());
+ param.setShopaccno(dtl.getShopid());
+ param.setTransdate(dtl.getTransdate());
+ param.setTranstime(dtl.getTranstime());
+ param.setCardNo(dtl.getCardno());
+ param.setDtltype("canteen");
+ param.setAmount(0);
+ CitizenPayResponse response=payApiService.citizencardPayinit(param);
- //TODO:调核心平台初始化确认 逻辑缺!!!
+ if(response.getRetcode()!=0){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransdtl.setAttr1(response.getRetmsg());
+ transDtlService.saveTransdtl(tTransdtl);
+ resp.setRetcode(response.getRetcode()+"");
+ resp.setRetmsg(response.getRetmsg());
+ return resp;
+ }
+ CitizenCardPayfinishParam finishparam=new CitizenCardPayfinishParam();
+ finishparam.setRefno(response.getRefno());
+ CitizenPayResponse finishresp=payApiService.citizencardPayFinish(finishparam);
+ if(finishresp.getRetcode()!=0){
+ tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ tTransdtl.setAttr1(finishresp.getRetmsg());
+ transDtlService.saveTransdtl(tTransdtl);
+ resp.setRetcode(finishresp.getRetcode()+"");
+ resp.setRetmsg(finishresp.getRetmsg());
+ return resp;
+ }
+
tTransdtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
transDtlService.saveTransdtl(tTransdtl);
-
resp.setBillno(req.getBillno());
- Double retAmount=tTransdtl.getAmount()*100;
+ Double retAmount=finishresp.getAmount()*100;
resp.setAmount(retAmount.intValue());
resp.setExtraamt(extamount*100);
resp.setUserid(cus.getCustid());
resp.setUsername(cus.getCustname());
- if(RestaurantConstant.STATUS_TRANSDTL_WAIT.equals(tTransdtl.getStatus())){
- resp.setRequire_query(true);
- }else{
- resp.setRequire_query(false);
- }
+ resp.setRequire_query(false);
resp.setBalance(0);
resp.setRetcode(ErrorCode.ERRIF_OK);
return resp;
diff --git a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
index 7b88a0b..5267d8e 100644
--- a/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
+++ b/src/main/java/com/supwisdom/dlpay/api/task/PosPayTask.java
@@ -1,15 +1,23 @@
package com.supwisdom.dlpay.api.task;
+import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
+import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
+import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
+import com.supwisdom.dlpay.api.service.PayApiService;
import com.supwisdom.dlpay.api.service.PosPayService;
import com.supwisdom.dlpay.framework.util.DateUtil;
+import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
import com.supwisdom.dlpay.restaurant.dao.TransDtlDao;
+import com.supwisdom.dlpay.restaurant.domain.TOfflineTransDtl;
import com.supwisdom.dlpay.restaurant.domain.TTransDtl;
+import com.supwisdom.dlpay.restaurant.service.OfflineTransDtlService;
import com.supwisdom.dlpay.restaurant.service.TransDtlService;
import com.supwisdom.dlpay.restaurant.util.RestaurantConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@@ -25,8 +33,12 @@
@Autowired
private TransDtlService transDtlService;
+ @Autowired
+ private OfflineTransDtlService offlineTransDtlService;
+ @Autowired
+ private CitizenCardPayProxy citizenCardPayProxy;
- @Scheduled(cron = "0/10 * * * * ?")
+ /* @Scheduled(cron = "${cron.offlinedtl}")
private void configureTasks() {
List<TTransDtl> dtls=transDtlService.getSubmittingTransdtl();
if(dtls.size()>0){
@@ -37,5 +49,48 @@
}
}
+ }*/
+
+ @Scheduled(cron = "${cron.offlinedtl}")
+ private void submitOfflineDtlTask(){
+ String date=DateUtil.getNow("yyyyMMdd");
+ List<TOfflineTransDtl> dtls=offlineTransDtlService.getUncheckOfflineTransdtl(date);
+ logger.info("正在上传"+dtls.size()+"笔流水");
+ if(dtls.size()>0){
+ for(TOfflineTransDtl dtl:dtls){
+ CitizenCardPayinitParam param=new CitizenCardPayinitParam();
+ param.setBillno(dtl.getBillno());
+ param.setShopaccno(dtl.getShopid());
+ param.setTransdate(dtl.getTransdate());
+ param.setTranstime(dtl.getTranstime());
+ param.setCardNo(dtl.getCardno());
+ param.setDtltype("canteen");
+ Double amt=dtl.getAmount()*100;
+ param.setAmount(amt.intValue());
+ CitizenPayResponse response=citizenCardPayProxy.citizencardPayinit(param);
+ if(response.getRetcode()!=0){
+ dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ dtl.setAttr1(response.getRetmsg());
+ offlineTransDtlService.saveTransdtl(dtl);
+ logger.info(dtl.getBillno()+"初始化失败,"+response.getRetcode()+","+response.getRetmsg()+","+ response.getException());
+ continue;
+ }
+ CitizenCardPayfinishParam finishparam=new CitizenCardPayfinishParam();
+ finishparam.setRefno(response.getRefno());
+ CitizenPayResponse finishresp=citizenCardPayProxy.citizencardPayFinish(finishparam);
+ if(finishresp.getRetcode()!=0){
+ dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_FAIL);
+ dtl.setAttr1(response.getRetmsg());
+ offlineTransDtlService.saveTransdtl(dtl);
+ logger.info(dtl.getBillno()+"消费缺认失败,"+finishresp.getRetcode()+","+finishresp.getRetmsg()+","+ finishresp.getException());
+ continue;
+ }
+ dtl.setStatus(RestaurantConstant.STATUS_TRANSDTL_SUCCESS);
+ offlineTransDtlService.saveTransdtl(dtl);
+ }
+
+ }
+
}
+
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java
index 3c55565..c8fd88e 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/OfflineTransDtlDao.java
@@ -22,5 +22,5 @@
@Query(value = "from TOfflineTransDtl where termsqlno=?1 and termid=?2 and accdate=?3 ")
List<TOfflineTransDtl> findByTermsqlnoAndTermidAndAccdate(Integer termsqlno,Integer termid,String accdate);
- List<TOfflineTransDtl> findAllByAccdateAndStatusIsNull(String accdate);
+ List<TOfflineTransDtl> findAllByAccdateAndStatus(String accdate,String status);
}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
index 4ba2770..e9dfdfb 100644
--- a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/OfflineTransDtlServiceImpl.java
@@ -113,6 +113,6 @@
@Override
public List<TOfflineTransDtl> getUncheckOfflineTransdtl(String accdate) {
- return transDtlDao.findAllByAccdateAndStatusIsNull(accdate);
+ return transDtlDao.findAllByAccdateAndStatus(accdate,"init");
}
}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 94e4bc6..41eb523 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -29,3 +29,5 @@
payapi.url=https://yy.dlsmk.cn/payapi
+cron.offlinedtl=0/10 * * * * ?
+
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index c555d6c..b65eed5 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -269,14 +269,14 @@
INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f72009a', 90, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6bff66af016bff683f73009b', 88, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb14005f', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150061', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150062', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150063', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150064', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150065', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150066', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
-INSERT INTO "tb_permission"(id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbca060016cbca3a983006a', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb14005f', 33, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150061', 39, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150062', 34, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150063', 40, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150064', 37, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150065', 36, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbc8fa4016cbc91eb150066', 35, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
+INSERT INTO "tb_permission" (id,resid,role_func_id,roleid) VALUES ('297e0a7e6cbca060016cbca3a983006a', 27, NULL, 'd1yctWs5+ks0iQN3m9bUvRHus6HbKbrs');
@@ -436,11 +436,13 @@
INSERT INTO "tb_subject" (subjno,balflag,displayflag,endflag,fsubjno,opendate,subjlevel,subjname,subjtype) VALUES ('660102', 2, 'y', 1, '6601', 20190604, 2, '积分抵扣款', 6);
INSERT INTO "tb_subject" (subjno,balflag,displayflag,endflag,fsubjno,opendate,subjlevel,subjname,subjtype) VALUES ('6602', 2, 'y', 1, NULL, 20190604, 1, '管理费收入', 6);
-INSERT INTO "tb_custtype"(custtypeid,custtypename,feetype) VALUES (2, '外部人员', NULL);
-INSERT INTO "tb_custtype"(custtypeid,custtypename,feetype) VALUES (1, '内部人员', NULL);
+INSERT INTO "tb_custtype" (custtypeid,custtypename,feetype) VALUES (2, '外部人员', NULL);
+INSERT INTO "tb_custtype" (custtypeid,custtypename,feetype) VALUES (1, '内部人员', NULL);
-insert into "tb_businesspara"(parakey,paravalue) values('upgrade_url','http://172.28.43.252:9977/file/download');
-insert into "tb_businesspara"(parakey,paravalue) values('upgrade_version','posa711dali-1.');
+insert into "tb_businesspara" (parakey,paravalue) values('upgrade_url','http://172.28.43.252:9977/file/download');
+insert into "tb_businesspara" (parakey,paravalue) values('upgrade_version','posa711dali-1.');
+INSERT INTO "tb_businesspara" (parakey,paravalue) VALUES ('payapi.appid', '200001');
+INSERT INTO "tb_businesspara" (parakey,paravalue) VALUES ('payapi.secret', 'dc1d26c0d43e442588092c8d45c21bce');
CREATE SEQUENCE SEQ_REFNO
diff --git a/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java b/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java
new file mode 100644
index 0000000..43bc906
--- /dev/null
+++ b/src/test/kotlin/com/supwisdom/dlpay/controller/PosPayServiceTest.java
@@ -0,0 +1,83 @@
+package com.supwisdom.dlpay.controller;
+
+
+import com.supwisdom.dlpay.api.bean.ApiVersionResponse;
+import com.supwisdom.dlpay.api.bean.CitizenCardPayfinishParam;
+import com.supwisdom.dlpay.api.bean.CitizenCardPayinitParam;
+import com.supwisdom.dlpay.api.bean.CitizenPayResponse;
+import com.supwisdom.dlpay.paysdk.ApiLoginHelper;
+import com.supwisdom.dlpay.paysdk.proxy.ApiLoginProxy;
+import com.supwisdom.dlpay.paysdk.proxy.CitizenCardPayProxy;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.cloud.openfeign.FeignAutoConfiguration;
+import org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.notNullValue;
+
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(properties = {
+ "payapi.url=https://yy.dlsmk.cn/payapi"},
+ classes = PosPayServiceTest.class)
+@ImportAutoConfiguration({RibbonAutoConfiguration.class,
+ FeignRibbonClientAutoConfiguration.class, FeignAutoConfiguration.class,
+ HttpMessageConvertersAutoConfiguration.class})
+@EnableFeignClients(basePackages = "com.supwisdom.dlpay.paysdk")
+@ComponentScan(basePackages = {"com.supwisdom.dlpay.paysdk"})
+public class PosPayServiceTest {
+
+ @Autowired
+ private CitizenCardPayProxy citizenCardPayProxy;
+
+ @Autowired
+ private ApiLoginProxy apiLoginProxy;
+
+ private String appid="200001";
+
+ private String secret="dc1d26c0d43e442588092c8d45c21bce";
+
+ @org.junit.Test
+ public void citizencardPayinit() {
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid, secret);
+
+
+ CitizenCardPayinitParam initParam = new CitizenCardPayinitParam();
+ initParam.setBillno("20190708172756000003");
+ initParam.setCardNo("25002885");
+ initParam.setAmount(1);
+ initParam.setTransdate("20190708");
+ initParam.setTranstime("172713");
+ initParam.setShopaccno("2000000012");
+ initParam.setDtltype("canteen");
+ CitizenPayResponse payInit = citizenCardPayProxy.citizencardPayinit(initParam);
+ assertThat("pay initialized " + payInit.getRetmsg() + payInit.getException(),
+ payInit.getRetcode(), equalTo(0));
+
+ System.out.println(payInit.getRefno());
+ }
+
+ @org.junit.Test
+ public void citizencardPayFinish() {
+ ApiLoginHelper helper = new ApiLoginHelper(apiLoginProxy);
+ helper.login(appid, secret);
+ CitizenCardPayfinishParam param=new CitizenCardPayfinishParam();
+ param.setRefno("20190826111707000139");
+ CitizenPayResponse payInit = citizenCardPayProxy.citizencardPayFinish(param);
+ assertThat("pay initialized " + payInit.getRetmsg() + payInit.getException(),
+ payInit.getRetcode(), equalTo(0));
+
+
+ }
+
+}