| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- package com.happy.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONObject;
- import com.happy.Model.*;
- import com.happy.Unitil_nsh.TLinx2Util;
- import com.happy.Unitil_nsh.TLinxAESCoder;
- import com.happy.Unitil_nsh.TestParams;
- import com.happy.common.wx.WxUtil;
- import com.happy.dao.ElecDao;
- import com.happy.service.ElecService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.Date;
- import java.util.List;
- import java.util.TreeMap;
- @Service("ElecService")
- public class ElecServiceImpl implements ElecService {
- @Autowired
- public ElecDao elecDao;
- public ElecDao getElecDao() {
- return elecDao;
- }
- public void setElecDao(ElecDao elecDao) {
- this.elecDao = elecDao;
- }
- public List<Build_elec> querySchool(){
- return elecDao.querySchool();
- }
- public List<Build_elec> queryBuild(String school){
- return elecDao.queryBuild(school);
- }
- public List<Build_elec> queryFloors(String school, String build){
- return elecDao.queryFloors(school, build);
- }
- public List<Build_elec> queryDom(String school, String build, String floors){
- return elecDao.queryDom(school, build, floors);
- }
- public List<Build_elec> queryBuildByDom(String dom){
- return elecDao.queryBuildByDom(dom);
- }
- public List<Build_elec> queryUser_id(String school, String dom){
- return elecDao.queryUser_id(school, dom);
- }
- public List<Build_elec> queryBuildByPoint(String pointid){
- return elecDao.queryBuildByPoint(pointid);
- }
- public JSONObject payOrder(String outNo, String pmtTag, String pmtName, String ordName, Integer originalAmount,
- Integer discountAmount, Integer ignoreAmount, Integer tradeAmount, String tradeAccount,
- String tradeNo, String tradeResult, String remark, String authCode, String tag,
- String jumpUrl, String notifyUrl,String sub_openid) {
- JSONObject resultjson = new JSONObject();
- // 初始化参数
- String timestamp = new Date().getTime() / 1000 + ""; // 时间
- try {
- // 固定参数
- TreeMap<String, String> postmap = new TreeMap<String, String>(); // 请求参数的map
- postmap.put("open_id", TestParams.OPEN_ID);
- postmap.put("timestamp", timestamp);
- TreeMap<String, Object> datamap = new TreeMap<String, Object>(); // data参数的map
- datamap.put("out_no", outNo);
- datamap.put("pmt_tag", pmtTag);
- datamap.put("pmt_name", pmtName);
- datamap.put("ord_name", ordName);
- datamap.put("original_amount", originalAmount + "");
- datamap.put("discount_amount", discountAmount + "");
- datamap.put("ignore_amount", ignoreAmount + "");
- datamap.put("trade_amount", tradeAmount + "");
- datamap.put("trade_account", tradeAccount);
- datamap.put("trade_no", tradeNo);
- datamap.put("trade_result", tradeResult);
- datamap.put("remark", remark);
- datamap.put("tag", tag);
- datamap.put("notify_url", notifyUrl);
- datamap.put("sub_appid", WeiXinUtil.appid_elcn);
- datamap.put("sub_openid", sub_openid);
- datamap.put("JSAPI","1");
- /**
- * 1 data字段内容进行AES加密,再二进制转十六进制(bin2hex)
- */
- TLinx2Util.handleEncrypt(datamap, postmap);
- /**
- * 2 请求参数签名 按A~z排序,串联成字符串,先进行sha1加密(小写),再进行md5加密(小写),得到签名
- */
- TLinx2Util.handleSign(postmap);
- /**
- * 3 请求、响应
- */
- String rspStr = TLinx2Util.handlePost(postmap, TestParams.PAYORDER);
- //System.out.println("====post响应字符串= " + rspStr);
- /**
- * 4 验签 有data节点时才验签
- */
- JSONObject respObject = JSONObject.parseObject(rspStr);
- //System.out.println("====响应错误码:" + respObject.get("errcode"));
- //System.out.println("====响应错误提示:" + respObject.get("msg"));
- //System.out.println(respObject);
- Object dataStr = respObject.get("data");
- if (!rspStr.isEmpty() && (dataStr != null)) {
- if (TLinx2Util.verifySign(respObject)) { // 验签成功
- /**
- * 5 AES解密,并hex2bin
- */
- String respData = TLinxAESCoder.decrypt(dataStr.toString(), TestParams.OPEN_KEY);
- System.out.println("=================响应data内容= " + respData);
- JSONObject jsonObject = JSONObject.parseObject(respData);
- System.out.println("appid: "+jsonObject);
- //Object tradeQrcode = jsonObject.get("trade_qrcode");
- resultjson.put("timeStamp", jsonObject.get("timeStamp"));
- resultjson.put("nonceStr", jsonObject.get("nonceStr"));
- resultjson.put("appId", jsonObject.get("appId"));
- resultjson.put("signType", jsonObject.get("signType"));
- resultjson.put("package", jsonObject.get("package"));
- resultjson.put("paySign", jsonObject.get("paySign"));
- return resultjson;
- //System.out.println("=================支付二维码地址= " + tradeQrcode.toString());
- //System.out.println("=================trade_result= " + jsonObject.get("trade_result").toString());
- } else {
- //System.out.println("==========验签失败==========");
- return resultjson;
- }
- } else {
- //System.out.println("==========没有返回data数据==========");
- return resultjson;
- }
- } catch (Exception e) {
- e.printStackTrace();
- return resultjson;
- }
- }
- public List<Build_elec> queryAll(){
- return elecDao.queryAll();
- }
- public List<Detail_elc> queryDetailAll(){
- return elecDao.queryDetailAll();
- }
- public List<Detail_elc> queryUse(){
- return elecDao.queryUse();
- }
- public int updateUseState(String pointid, String dataTime){
- return elecDao.updateUseState(pointid, dataTime);
- }
- public List<Detail_elc> queryRe(){
- return elecDao.queryRe();
- }
- // 金额要设置两处
- public static void main(String[] args) {
- String orderNo = WxUtil.mchOrderNo();
- System.out.println(orderNo);
- JSONObject j = new ElecServiceImpl().payOrder(orderNo, "WeixinJXYL", null, "自定义订单名称", 1,
- 0, 0, 1, null, null, null, null,
- null, "附加数据", null, "http://www.baidu.com/tlinx2apidemo1/callback/scanpay_cashier/payResult", "");
- System.out.println(j);
- }
- public int insertDetail(Detail_elc detail_elc){
- return elecDao.insertDetail(detail_elc);
- }
- public List<Detail_elc> queryByTimeAndPoint(String pointid, String dataTime){
- return elecDao.queryByTimeAndPoint(pointid, dataTime);
- }
- public int updateUse(String pointid, String dataTime, double use_elc){
- return elecDao.updateUse(pointid, dataTime, use_elc);
- }
- public List<Recharge_elc> queryByPointAndDay(String pointid, String day_time){
- return elecDao.queryByPointAndDay(pointid,day_time);
- }
- public int updateRe(String pointid, String dataTime, double recharge_elc){
- return elecDao.updateRe(pointid, dataTime, recharge_elc);
- }
- public int updateReState(String pointid, String dataTime){
- return elecDao.updateReState(pointid,dataTime);
- }
- public List<Detail_elc> queryUsable(){
- return elecDao.queryUsable();
- };
- public int updateUsable(String pointid, String dataTime, double usable_elc){
- return elecDao.updateUsable(pointid,dataTime,usable_elc);
- };
- public int updateUsableState(String pointid, String dataTime){
- return elecDao.updateUsableState(pointid, dataTime);
- }
- public List<Detail_elc2> queryDayPower(String dom, String sqlx){
- return elecDao.queryDayPower(dom, sqlx);
- }
- }
|