123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- package com.platform.yijia.controller;
- import com.alibaba.fastjson.JSON;
- import com.google.gson.Gson;
- import com.platform.yijia.config.YiJiaRequest;
- import com.platform.yijia.param.request.PayInfoRequest;
- import com.platform.yijia.service.*;
- import com.platform.yijia.utils.ResultData;
- import com.platform.yijia.utils.weixinapp.WxPushUtil;
- import com.saobei.open.sdk.DefaultSaobeiApiClient;
- import com.saobei.open.sdk.SaobeiApiClient;
- import com.saobei.open.sdk.model.requst.trade.SaobeiJsPayRequest;
- import com.saobei.open.sdk.model.requst.trade.SaobeiMiniPayRequest;
- import com.saobei.open.sdk.model.requst.trade.preauth.SaobeiPreAuthMiniPayRequest;
- import com.saobei.open.sdk.model.response.trade.SaobeiJsPayResponse;
- import com.saobei.open.sdk.model.response.trade.SaobeiMiniPayResponse;
- import com.saobei.open.sdk.model.response.trade.preauth.SaobeiPreAuthMiniPayResponse;
- import net.sf.json.JSONObject;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Controller;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.*;
- import javax.annotation.Resource;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.Random;
- /*
- * <Title> SaoBeiPayController </Title>
- * <Description> 第三方扫呗支付 </Description>
- * @Author JK
- * @Date 2021年8月18日
- */
- @Controller
- @YiJiaRequest()
- @CrossOrigin
- public class SaoBeiPayController {
- private static Logger logger =(Logger) LoggerFactory.getLogger(SaoBeiPayController.class);
- @Resource
- private PayOrderService payOrderService;
- @Resource
- private AppUserInfoService appUserInfoService;
- @Resource
- private StationOilGunService stationOilGunService;
- @Resource
- private CustomerGradeServices customerGradeServices;
- @Resource
- private StationService stationService;
- @Resource
- private CustomerPointsService customerPointsService;
- @Resource
- private IntegralRuleService integralRuleService;
- @Resource
- private CustomerPointsRecordService customerPointsRecordService;
- @Resource
- private WxPushUtil wxPushUtil;
- @Resource
- private GzhNewsTemplateService gzhNewsTemplateService;
- @Resource
- private CustomerManagerService customerManagerService;
- @Value("${yijia.path.global-prefix}")
- private String globalPrefix;
- @Value("${yijia.domainName}")
- private String domainName;
- // 商户号:852107011000070
- // 终端号:33336510
- // 密钥(token):dbea558077934b95a2f2adf57d278c40
- //测试
- // 商户号码:852105942000011
- // 终端号:18237172
- // 密钥:2ef428f4f76c414282e831baea9e4b0e
- //智慧易加
- // 商户号码:845104816000034
- // 终端号:18241101
- // 密钥:23570b46a955484d92038f6a18d2b9d6
- // public static final String PAY_VER = "110"; //版本号
- // public static final String KEY = ""; //机构秘钥
- // public static final String ACCESS_TOKEN = "2ef428f4f76c414282e831baea9e4b0e"; //支付秘钥
- // public static final String INST_NO = ""; //机构号
- // public static final String MERCHANT_NO = "852105942000011"; //商户号
- // public static final String TERMINAL_ID = "18237172"; //终端号
- /***
- * 公众号云闪付拉起支付
- * @param payInfoRequest
- * @return
- * @throws Exception
- */
- @RequestMapping(value = {"/yunPayGzh"}, consumes = {"application/json"}, method = {RequestMethod.POST})
- @ResponseBody
- public String yunPayGzh(@RequestBody PayInfoRequest payInfoRequest) throws Exception {
- //智慧易加
- // 商户号码:845104816000034
- // 终端号:18241101
- // 密钥:23570b46a955484d92038f6a18d2b9d6
- Gson gson = new Gson();
- ResultData resultData = null;
- //创建client
- SaobeiApiClient<SaobeiJsPayRequest, SaobeiJsPayResponse> client = new DefaultSaobeiApiClient<>("23570b46a955484d92038f6a18d2b9d6");
- //创建requst
- SaobeiJsPayRequest requst = new SaobeiJsPayRequest();
- requst.setPay_ver("110");
- requst.setPay_type("010");
- requst.setService_id("012");
- requst.setMerchant_no("845104816000034");
- requst.setTerminal_id("18241101");
- Random random = new Random();
- String result = "";
- for (int i = 0; i < 6; i++) {
- result += random.nextInt(10);
- }
- String ordNo_1 = System.nanoTime() + result;
- requst.setTerminal_trace(ordNo_1); //202003252204310000
- requst.setTerminal_time(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()));
- requst.setTotal_fee("1");
- requst.setSub_appid("wxc8189d3b3a7283e0");
- requst.setOpen_id("oJR5R6r4EJhaORFcPap70r_mtFZo"); //oJR5R6r4EJhaORFcPap70r_mtFZo //oRwjv4iHjSUgxNxOJOQ_60Ln7cno
- requst.setOrder_body("sdk测试");
- String notifyUrl = "https://" + this.domainName + "/" + this.globalPrefix + "/getYunPayGzhCallback";
- logger.info("回调地址:"+ notifyUrl);
- requst.setNotify_url(notifyUrl);
- //发送请求
- System.out.println("请求报文:"+JSON.toJSONString(requst));
- SaobeiJsPayResponse response = client.execute(requst);
- System.out.println("返回报文:"+JSON.toJSONString(response));
- resultData = ResultData.success(response);
- return gson.toJson(resultData);
- }
- /***
- * 公众号扫呗支付回调
- * @param jsonObject
- * @return
- */
- @RequestMapping(value = "/getYunPayGzhCallback", consumes = "application/json", method = RequestMethod.POST)
- @ResponseBody
- @Transactional
- public JSONObject getYunPayGzhCallback(@RequestBody JSONObject jsonObject){
- JSONObject result = new JSONObject(); //返回给扫呗状态码
- System.out.println("扫呗调用回调接口返回参数:" + jsonObject);
- if(jsonObject.containsKey("result_code") && jsonObject.get("result_code").toString().equals("01")){
- //业务逻辑
- //返给扫呗状态码
- result.put("return_code", "01");
- result.put("return_msg", "success");
- }else {
- result.put("return_code", "02");
- result.put("return_msg", "fail");
- }
- return result;
- }
- /***
- * 小程序云闪付拉起支付
- * @param payInfoRequest
- * @return
- * @throws Exception
- */
- @RequestMapping(value = {"/yunPay"}, consumes = {"application/json"}, method = {RequestMethod.POST})
- @ResponseBody
- public String yunPay(@RequestBody PayInfoRequest payInfoRequest) throws Exception {
- //智慧易加
- // 商户号码:845104816000034
- // 终端号:18241101
- // 密钥:23570b46a955484d92038f6a18d2b9d6
- Gson gson = new Gson();
- ResultData resultData = null;
- DefaultSaobeiApiClient defaultSaobeiApiClient = new DefaultSaobeiApiClient("23570b46a955484d92038f6a18d2b9d6"); //2ef428f4f76c414282e831baea9e4b0e
- SaobeiMiniPayRequest requst = new SaobeiMiniPayRequest();
- requst.setPay_ver("110");
- requst.setPay_type("010");
- requst.setService_id("015");
- requst.setMerchant_no("845104816000034"); //852105942000011
- requst.setTerminal_id("18241101"); //18237172
- Random random = new Random();
- String result = "";
- for (int i = 0; i < 6; i++) {
- result += random.nextInt(10);
- }
- String ordNo_1 = System.nanoTime() + result;
- requst.setTerminal_trace(ordNo_1); //202003252204310000
- requst.setTerminal_time(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date())); //"20200325220431"
- String amt = payInfoRequest.getAmt();
- requst.setTotal_fee("1");
- String openId = payInfoRequest.getOpenId();
- requst.setOpen_id("oJR5R6r4EJhaORFcPap70r_mtFZo"); // oRwjv4iHjSUgxNxOJOQ_60Ln7cno obnG9jhDLvom5fGwuhYysmQTW4qQ
- requst.setOrder_body("sdk测试");
- String notifyUrl = "https://" + this.domainName + "/" + this.globalPrefix + "/getYunPayCallback";
- logger.info("回调地址"+ notifyUrl);
- requst.setNotify_url(notifyUrl);
- requst.setSub_appid("wxc8189d3b3a7283e0"); // wxe1135cd390b38a54 wxe568c727d466aef9 智慧易加公众号:wxc8189d3b3a7283e0
- System.out.println("请求报文"+ JSON.toJSONString(requst));
- SaobeiMiniPayResponse response = (SaobeiMiniPayResponse)defaultSaobeiApiClient.execute(requst);
- System.out.println("返回报文"+ JSON.toJSONString(response));
- resultData = ResultData.success(response);
- return gson.toJson(resultData);
- }
- /***
- * 小程序云闪付扫呗回调
- * @param jsonObject
- * @return
- */
- @RequestMapping(value = "/getYunPayCallback", consumes = "application/json", method = RequestMethod.POST)
- @ResponseBody
- @Transactional
- public JSONObject getYunPayCallback(@RequestBody JSONObject jsonObject){
- JSONObject result = new JSONObject(); //返回给扫呗状态码
- System.out.println("扫呗调用回调接口返回参数:" + jsonObject);
- if(jsonObject.containsKey("result_code") && jsonObject.get("result_code").toString().equals("01")){
- //业务逻辑
- //返给扫呗状态码
- result.put("return_code", "01");
- result.put("return_msg", "success");
- }else {
- result.put("return_code", "02");
- result.put("return_msg", "fail");
- }
- return result;
- }
- }
|