|
@@ -11,6 +11,9 @@ import com.platform.yijia.utils.*;
|
|
import com.platform.yijia.utils.redis.RedisCacheUtil;
|
|
import com.platform.yijia.utils.redis.RedisCacheUtil;
|
|
import com.platform.yijia.utils.weixinapp.WeiXinUserUtil;
|
|
import com.platform.yijia.utils.weixinapp.WeiXinUserUtil;
|
|
import com.platform.yijia.utils.weixinapp.WxPushUtil;
|
|
import com.platform.yijia.utils.weixinapp.WxPushUtil;
|
|
|
|
+import com.saobei.open.sdk.DefaultSaobeiApiClient;
|
|
|
|
+import com.saobei.open.sdk.model.requst.trade.SaobeiMiniPayRequest;
|
|
|
|
+import com.saobei.open.sdk.model.response.trade.SaobeiMiniPayResponse;
|
|
import lombok.SneakyThrows;
|
|
import lombok.SneakyThrows;
|
|
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
|
|
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -234,21 +237,21 @@ public class PayController {
|
|
//reqData.put("ylTrmNo", ""); //银联终端号
|
|
//reqData.put("ylTrmNo", ""); //银联终端号
|
|
//reqData.put("terminalId", ""); //TQ机具编号
|
|
//reqData.put("terminalId", ""); //TQ机具编号
|
|
//reqData.put("deviceNo ", "1111"); //设备号
|
|
//reqData.put("deviceNo ", "1111"); //设备号
|
|
- // reqData.put("identityFlag", ""); //是否是实名支付
|
|
|
|
- // reqData.put("buyerIdType", "IDCARD"); //证件类型
|
|
|
|
- // reqData.put("buyerIdNo", "410523198701054018"); //证件号
|
|
|
|
- // reqData.put("buyerName", "张三"); //买家姓名
|
|
|
|
- // reqData.put("mobileNum", ""); //手机号
|
|
|
|
- // reqData.put("extend", ""); //备用
|
|
|
|
|
|
+ // reqData.put("identityFlag", ""); //是否是实名支付
|
|
|
|
+ // reqData.put("buyerIdType", "IDCARD"); //证件类型
|
|
|
|
+ // reqData.put("buyerIdNo", "410523198701054018"); //证件号
|
|
|
|
+ // reqData.put("buyerName", "张三"); //买家姓名
|
|
|
|
+ // reqData.put("mobileNum", ""); //手机号
|
|
|
|
+ // reqData.put("extend", ""); //备用
|
|
String req= SXFPaySign.getSXFPay(reqData);
|
|
String req= SXFPaySign.getSXFPay(reqData);
|
|
- logger.debug("参数信息:"+req);
|
|
|
|
|
|
+ logger.debug("参数信息:"+req);
|
|
System.out.println("req:" + req);
|
|
System.out.println("req:" + req);
|
|
//此处不要改变reqData里面值的顺序用LinkedHashMap
|
|
//此处不要改变reqData里面值的顺序用LinkedHashMap
|
|
HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
|
|
HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
|
|
//组装加密串
|
|
//组装加密串
|
|
String signContent = RSASignature.getOrderContent(reqMap);
|
|
String signContent = RSASignature.getOrderContent(reqMap);
|
|
System.out.println("拼接后的参数:" + signContent);
|
|
System.out.println("拼接后的参数:" + signContent);
|
|
- logger.debug("拼接后的参数:"+signContent);
|
|
|
|
|
|
+ logger.debug("拼接后的参数:"+signContent);
|
|
//sign
|
|
//sign
|
|
String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
|
|
String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
|
|
System.out.println("============签名:" + sign);
|
|
System.out.println("============签名:" + sign);
|
|
@@ -296,6 +299,250 @@ public class PayController {
|
|
return gson.toJson(resultData);
|
|
return gson.toJson(resultData);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 支付接口,前台上传支付信息,支付数据落地生产订单,调用随行付支付接口
|
|
|
|
+ * @param
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "/getPayChannelInfo", consumes = "application/json", method = RequestMethod.POST)
|
|
|
|
+ @ResponseBody
|
|
|
|
+ public String getPayChannelInfo(@RequestBody PayInfoRequest payInfoRequest){
|
|
|
|
+ Gson gson =new Gson();
|
|
|
|
+ ResultData resultData =null;
|
|
|
|
+ String openId = payInfoRequest.getOpenId(); //用户openId
|
|
|
|
+ String userType=payInfoRequest.getUserType();//用户登录类型 1 公众号。2 小程序
|
|
|
|
+ String ordNo = payInfoRequest.getOrdNo();
|
|
|
|
+ AppUserInfo appUserInfo =new AppUserInfo();
|
|
|
|
+ //订单类型 是小程序还是公众号
|
|
|
|
+ appUserInfo.setUserType(userType);
|
|
|
|
+ if(userType.equals("1")){
|
|
|
|
+ //1 是微信
|
|
|
|
+ appUserInfo.setMinaOpenid(openId);
|
|
|
|
+ }else if(userType.equals("2")){
|
|
|
|
+ //2是支付宝
|
|
|
|
+ appUserInfo.setALiId(openId);
|
|
|
|
+ }
|
|
|
|
+ //appUserInfo.setStationId(stationInfos.getGroupId());
|
|
|
|
+ StationInfo stationInfo = new StationInfo();
|
|
|
|
+ stationInfo.setStationId(Integer.valueOf(payInfoRequest.getStationId()));
|
|
|
|
+ StationInfo stationInfos = stationService.selectStationInfo(stationInfo);
|
|
|
|
+ appUserInfo.setStationId(stationInfos.getGroupId());
|
|
|
|
+ AppUserInfo appUserInfos =appUserInfoService.getAppUserInfo(appUserInfo);
|
|
|
|
+ if(appUserInfos!=null){
|
|
|
|
+ //调用聚合支付
|
|
|
|
+ try{
|
|
|
|
+ //根据订单号查询订单信息
|
|
|
|
+ PayOrder payOrder=payOrderService.selectOrderInfoByOrdNo(ordNo);
|
|
|
|
+ if(payOrder!=null ){
|
|
|
|
+ if(payOrder.getStatus() !=null && payOrder.getStatus().equals("0")){
|
|
|
|
+ if(payInfoRequest.getPayChannelType() !=null && payInfoRequest.getPayChannelType().equals("2")){
|
|
|
|
+ //云闪付支付方式
|
|
|
|
+ Map<String, String> staPayChannelInfo = stationService.getStationAppIdAndAppSecret(Integer.valueOf(payInfoRequest.getStationId()));
|
|
|
|
+ if(staPayChannelInfo !=null && staPayChannelInfo.containsKey("merchantNo") && staPayChannelInfo.containsKey("terminalId")
|
|
|
|
+ && staPayChannelInfo.containsKey("yunKey") && staPayChannelInfo.containsKey("appId")) {
|
|
|
|
+ //秘钥
|
|
|
|
+ String yunKey = staPayChannelInfo.get("yunKey"); //23570b46a955484d92038f6a18d2b9d6
|
|
|
|
+ DefaultSaobeiApiClient defaultSaobeiApiClient = new DefaultSaobeiApiClient(yunKey); //2ef428f4f76c414282e831baea9e4b0e
|
|
|
|
+ SaobeiMiniPayRequest requst = new SaobeiMiniPayRequest();
|
|
|
|
+ requst.setPay_ver("100");
|
|
|
|
+ requst.setPay_type("010");
|
|
|
|
+ requst.setService_id("015");
|
|
|
|
+ requst.setMerchant_no(staPayChannelInfo.get("merchantNo")); //商户号 845104816000034
|
|
|
|
+ requst.setTerminal_id(staPayChannelInfo.get("terminalId")); //终端号 18241101
|
|
|
|
+ requst.setTerminal_trace(payOrder.getOrderNo()); //订单号 202003252204310000 6683315853083916109905
|
|
|
|
+ requst.setTerminal_time(new SimpleDateFormat("yyyyMMddhhmmss").format(new Date())); //"20200325220431"
|
|
|
|
+ //云闪付单位为分
|
|
|
|
+ BigDecimal totalFee = new BigDecimal(payOrder.getAmt().toString()).multiply(new BigDecimal("100")).setScale(0, BigDecimal.ROUND_DOWN);
|
|
|
|
+ logger.info("该订单金额:" + payOrder.getAmt().toString()+"; 拉起云闪付上送金额(单位:分):" + totalFee.toString());
|
|
|
|
+ requst.setTotal_fee(totalFee.toString());
|
|
|
|
+ requst.setOpen_id(payInfoRequest.getOpenId()); // oRwjv4iHjSUgxNxOJOQ_60Ln7cno obnG9jhDLvom5fGwuhYysmQTW4qQ
|
|
|
|
+
|
|
|
|
+ //订单内容
|
|
|
|
+ String orderBody = payOrder.getOilName() + "-" +payOrder.getStationName();
|
|
|
|
+ requst.setOrder_body(orderBody);
|
|
|
|
+ //回调地址
|
|
|
|
+ String notifyUrl = "https://" + this.domainName + "/" + this.globalPrefix + "/getYunPayCallback";
|
|
|
|
+ logger.info("回调地址:" + notifyUrl);
|
|
|
|
+ requst.setNotify_url(notifyUrl);
|
|
|
|
+ //小程序appId
|
|
|
|
+ requst.setSub_appid(staPayChannelInfo.get("appId")); // wxe1135cd390b38a54 wxe568c727d466aef9 智慧易加公众号:wxc8189d3b3a7283e0
|
|
|
|
+
|
|
|
|
+ logger.info("请求报文:" + JSON.toJSONString(requst));
|
|
|
|
+ SaobeiMiniPayResponse response = (SaobeiMiniPayResponse) defaultSaobeiApiClient.execute(requst);
|
|
|
|
+ logger.info("返回报文:" + JSON.toJSONString(response));
|
|
|
|
+
|
|
|
|
+ //返回前端字段
|
|
|
|
+ Map<String, Object> reqData = new HashMap<>();
|
|
|
|
+ //Map<String, Object> resultMap = new HashMap<>();
|
|
|
|
+ if(response !=null && response.getResult_code().equals("01")){
|
|
|
|
+ reqData.put("timeStamp", response.getTimeStamp());
|
|
|
|
+ reqData.put("payPackage", response.getPackage_str());
|
|
|
|
+ reqData.put("signType", response.getSignType());
|
|
|
|
+ reqData.put("paySign", response.getPaySign());
|
|
|
|
+ reqData.put("return_msg", response.getReturn_msg());
|
|
|
|
+ reqData.put("merchant_name", response.getMerchant_name());
|
|
|
|
+ reqData.put("total_fee", response.getTotal_fee());
|
|
|
|
+ reqData.put("terminal_time", response.getTerminal_time());
|
|
|
|
+ reqData.put("terminal_trace", response.getTerminal_trace());
|
|
|
|
+ reqData.put("code", response.getResult_code());
|
|
|
|
+ }else if(response !=null && response.getResult_code().equals("02")){
|
|
|
|
+ reqData.put("code", response.getResult_code());
|
|
|
|
+ reqData.put("return_msg", response.getReturn_msg());
|
|
|
|
+ }else {
|
|
|
|
+ //自己定义
|
|
|
|
+ reqData.put("code", "03");
|
|
|
|
+ reqData.put("return_msg", "当前支付系统参数配置错误请检查!");
|
|
|
|
+ }
|
|
|
|
+ //resultMap.put("respData", reqData);
|
|
|
|
+ logger.info("云闪付返回给前端字段:" + JSON.toJSONString(reqData));
|
|
|
|
+ resultData = ResultData.success(reqData);
|
|
|
|
+ }else {
|
|
|
|
+ resultData = ResultData.error(CodeMsg.STATION_NULL_INFO);
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ //将业务参数存放在 JSON 对象中
|
|
|
|
+ JSONObject reqData = new JSONObject();
|
|
|
|
+ reqData.put("ordNo", payOrder.getOrderNo()); //商户订单号
|
|
|
|
+ //reqData.put("subMechId", ""); //子商户号
|
|
|
|
+ reqData.put("amt", payOrder.getAmt()); //订单总金额
|
|
|
|
+ //reqData.put("amt", "0.01");
|
|
|
|
+ //reqData.put("discountAmt", ""); //参与优惠金额
|
|
|
|
+ //reqData.put("unDiscountAmt", ""); //不参与优惠金额
|
|
|
|
+ Map<String, String> stationAppIdAndAppSecret = stationService.getStationAppIdAndAppSecret(Integer.valueOf(payInfoRequest.getStationId()));
|
|
|
|
+ if(stationAppIdAndAppSecret !=null && stationAppIdAndAppSecret.containsKey("appId") && stationAppIdAndAppSecret.containsKey("mno")){
|
|
|
|
+ if(userType.equals("1")){
|
|
|
|
+ reqData.put("subAppid", stationAppIdAndAppSecret.get("appId")); //微信小程序
|
|
|
|
+ logger.info("支付子商户:"+ stationAppIdAndAppSecret.get("appId"));
|
|
|
|
+ }else if(userType.equals("2")){
|
|
|
|
+ reqData.put("subAppid", stationAppIdAndAppSecret.get("aliAppId")); //支付宝小程序
|
|
|
|
+ logger.info("支付子商户:"+ stationAppIdAndAppSecret.get("aliAppId"));
|
|
|
|
+ }
|
|
|
|
+ reqData.put("mno", stationAppIdAndAppSecret.get("mno")); //商户编号
|
|
|
|
+ logger.info("商户编号:"+ stationAppIdAndAppSecret.get("mno"));
|
|
|
|
+ }
|
|
|
|
+ if(userType.equals("1")){
|
|
|
|
+ //1 是微信小程序
|
|
|
|
+ reqData.put("payType", "WECHAT"); //支付渠道 WECHAT:微信;ALIPAY:支付宝;UNIONPAY:银联
|
|
|
|
+ reqData.put("payWay", "03"); //支付方式 02 公众号/服 务窗/js支付 03 小程序
|
|
|
|
+ reqData.put("userId", appUserInfos.getMinaOpenid()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
|
|
|
|
+ }else if(userType.equals("2")){
|
|
|
|
+ //2 是支付宝
|
|
|
|
+ reqData.put("payType", "ALIPAY"); //支付渠道 WECHAT:微信;ALIPAY:支付宝;UNIONPAY:银联
|
|
|
|
+ reqData.put("payWay", "03"); //支付方式 02 公众号/服 务窗/js支付 03 小程序
|
|
|
|
+ reqData.put("userId", appUserInfos.getALiId()); //用户号 微信:openid; 支付宝:userid;银联:userid;微信&支付宝必传,银联js为非必传
|
|
|
|
+ }
|
|
|
|
+ //reqData.put("timeExpire", "10"); //订单失效时间, 以分钟为单位
|
|
|
|
+ //reqData.put("limitPay", "00"); //限制卡类型: 00-全部 01-限定不能使 用信用卡支付 默认值 00
|
|
|
|
+
|
|
|
|
+ reqData.put("subject", payOrder.getOilName() + " - " +payOrder.getStationName()); //订单标题
|
|
|
|
+ //reqData.put("hbFqNum", "6"); //花呗分期数,仅可上送 6 或 12
|
|
|
|
+ reqData.put("tradeSource", "01"); //交易来源 01服务商,02收银台,03硬件
|
|
|
|
+ reqData.put("trmIp", "172.16.2.1");//商家ip地址
|
|
|
|
+ // reqData.put("customerIp", ""); //持卡人ip地址,银联js支付时必传
|
|
|
|
+
|
|
|
|
+ //reqData.put("outFrontUrl", ""); //js 支付,前台 成功通知地址
|
|
|
|
+ reqData.put("outFrontFailUrl", ""); //js 支付,前台 事变通知地址
|
|
|
|
+ //globalPrefix
|
|
|
|
+ String notifyUrl = "https://"+domainName+"/"+globalPrefix+"/getCallback";
|
|
|
|
+ logger.info("随行付调用回调地址:" + notifyUrl);
|
|
|
|
+ //reqData.put("notifyUrl", "https://www.huijy.net/api/getCallback"); //回调地址
|
|
|
|
+ reqData.put("notifyUrl", notifyUrl); //回调地址
|
|
|
|
+ //reqData.put("needReceipt", "00"); //电子发票功能 微信开具电子 发票使用
|
|
|
|
+ //reqData.put("ledgerAccountFlag", "00"); //是否做分账 分账交易使 用;00:做; 01:不做;不传默认为不做分账
|
|
|
|
+ //reqData.put("ledgerAccountEffectTime", "00"); //分账有效时间 单位为天;是 否做分账选择 00 时该字段必传
|
|
|
|
+ // reqData.put("ruleId", "00"); //同 步 分 账 规 则 id
|
|
|
|
+ // reqData.put("fusruleId", "00"); //同步分账规则
|
|
|
|
+ //reqData.put("ylTrmNo", ""); //银联终端号
|
|
|
|
+ //reqData.put("terminalId", ""); //TQ机具编号
|
|
|
|
+ //reqData.put("deviceNo ", "1111"); //设备号
|
|
|
|
+ // reqData.put("identityFlag", ""); //是否是实名支付
|
|
|
|
+ // reqData.put("buyerIdType", "IDCARD"); //证件类型
|
|
|
|
+ // reqData.put("buyerIdNo", "410523198701054018"); //证件号
|
|
|
|
+ // reqData.put("buyerName", "张三"); //买家姓名
|
|
|
|
+ // reqData.put("mobileNum", ""); //手机号
|
|
|
|
+ // reqData.put("extend", ""); //备用
|
|
|
|
+ String req= SXFPaySign.getSXFPay(reqData);
|
|
|
|
+ logger.debug("参数信息:"+req);
|
|
|
|
+ System.out.println("req:" + req);
|
|
|
|
+ //此处不要改变reqData里面值的顺序用LinkedHashMap
|
|
|
|
+ HashMap reqMap = JSON.parseObject(req, LinkedHashMap.class, Feature.OrderedField);
|
|
|
|
+ //组装加密串
|
|
|
|
+ String signContent = RSASignature.getOrderContent(reqMap);
|
|
|
|
+ System.out.println("拼接后的参数:" + signContent);
|
|
|
|
+ logger.debug("拼接后的参数:"+signContent);
|
|
|
|
+ //sign
|
|
|
|
+ String sign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
|
|
|
|
+ System.out.println("============签名:" + sign);
|
|
|
|
+ reqMap.put("sign", sign);
|
|
|
|
+ String reqStr = JSON.toJSONString(reqMap);
|
|
|
|
+ System.out.println("请求参数:" + reqMap);
|
|
|
|
+ System.out.println("请求参数:" + reqStr);
|
|
|
|
+ //调用第三方接口地址
|
|
|
|
+ //String url = "https://openapi-test.tianquetech.com/order/jsapiScan";//测试地址
|
|
|
|
+ String url = "https://openapi.suixingpay.com/order/jsapiScan";//生产地址
|
|
|
|
+ String resultJson = HttpUtils.connectPostUrl(url, reqStr);
|
|
|
|
+ System.out.println("返回信息:" + resultJson);
|
|
|
|
+ // logger.debug("返回信息:"+resultJson);
|
|
|
|
+ //不要对reqData排序 所以用LinkedHashMap
|
|
|
|
+ HashMap<String, Object> result = JSON.parseObject(resultJson, LinkedHashMap.class, Feature.OrderedField);
|
|
|
|
+
|
|
|
|
+ Map<String, Object> r = new HashMap<>(); //返回前端参数
|
|
|
|
+ if ("0000".equals(result.get("code"))) {
|
|
|
|
+ //验签
|
|
|
|
+ String signResult = result.get("sign").toString();
|
|
|
|
+ result.remove("sign");
|
|
|
|
+ String resultStr = RSASignature.getOrderContent(result);
|
|
|
|
+ System.out.println("resultStr: " + resultStr);
|
|
|
|
+ //sign
|
|
|
|
+ String resultSign = RSASignature.encryptBASE64(RSASignature.sign(signContent, SXFPaySign.privateKey));
|
|
|
|
+ System.out.println("resultSign: " + resultSign);
|
|
|
|
+ //组装加密串
|
|
|
|
+ if (RSASignature.doCheck(resultStr, signResult, SXFPaySign.sxfPublic)) {
|
|
|
|
+ System.out.println("===================验签成功==============");
|
|
|
|
+ logger.info("随行付返回字段:" +result);
|
|
|
|
+ r.put("code", result.get("code"));
|
|
|
|
+ r.put("msg", result.get("msg"));
|
|
|
|
+ //net.sf.json.JSONObject result = location.getJSONObject("result").getJSONObject("addressComponent");
|
|
|
|
+ JSONObject respData = (JSONObject)result.get("respData");
|
|
|
|
+ r.put("payTimeStamp", respData.get("payTimeStamp"));
|
|
|
|
+ r.put("ordNo", respData.get("ordNo"));
|
|
|
|
+ r.put("payPackage", respData.get("payPackage"));
|
|
|
|
+ r.put("bizMsg", respData.get("bizMsg"));
|
|
|
|
+ r.put("paySign", respData.get("paySign"));
|
|
|
|
+ r.put("bizCode", respData.get("bizCode"));
|
|
|
|
+ r.put("payAppId", respData.get("payAppId"));
|
|
|
|
+ r.put("sxfUuid", respData.get("sxfUuid"));
|
|
|
|
+ r.put("paynonceStr", respData.get("paynonceStr"));
|
|
|
|
+ r.put("paySignType", respData.get("paySignType"));
|
|
|
|
+ r.put("uuid", respData.get("uuid"));
|
|
|
|
+
|
|
|
|
+ r.put("orgId", result.get("orgId"));
|
|
|
|
+ r.put("signType", result.get("signType"));
|
|
|
|
+ r.put("reqId", result.get("reqId"));
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ r.put("code", result.get("code"));
|
|
|
|
+ r.put("msg", result.get("msg"));
|
|
|
|
+ }
|
|
|
|
+ logger.info("随行付支付时系统返回前端参数字段:" +r);
|
|
|
|
+ resultData=ResultData.success(r);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ resultData=ResultData.error(CodeMsg.ALREADY_PAY);
|
|
|
|
+ }
|
|
|
|
+ }else {
|
|
|
|
+ resultData=ResultData.error(CodeMsg.YEWU_FAIL,"未查询到订单");
|
|
|
|
+ }
|
|
|
|
+ }catch (Exception e){
|
|
|
|
+ resultData=ResultData.error(CodeMsg.YEWU_FAIL,"订单支付失败");
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ }else{
|
|
|
|
+ //返回失败支付失败信息
|
|
|
|
+ resultData=ResultData.error(CodeMsg.USER_NOT_EXSIST);
|
|
|
|
+ }
|
|
|
|
+ return gson.toJson(resultData);
|
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
/**
|
|
* 验证商户信息查询
|
|
* 验证商户信息查询
|
|
@@ -742,6 +989,36 @@ public class PayController {
|
|
return req;
|
|
return req;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /***
|
|
|
|
+ * 小程序云闪付扫呗回调
|
|
|
|
+ * @param params
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @RequestMapping(value = "/getYunPayCallback", consumes = "text/xml", method = RequestMethod.POST)
|
|
|
|
+ @ResponseBody
|
|
|
|
+ @Transactional
|
|
|
|
+ public net.sf.json.JSONObject getYunPayCallback(@RequestBody String params){
|
|
|
|
+ logger.info(" =======================================云闪付(扫呗) 开始 调用回调接口===============================================");
|
|
|
|
+ net.sf.json.JSONObject result = new net.sf.json.JSONObject(); //返回
|
|
|
|
+ YunPayCallBack yunPayCallBack = JSON.parseObject(params, YunPayCallBack.class);
|
|
|
|
+ logger.info("云闪付扫呗调用回调接口返回参数:" + params);
|
|
|
|
+ //logger.info("云闪付扫呗调用回调接口状态码:" + yunPayCallBack.getResult_code());
|
|
|
|
+ if(yunPayCallBack.getResult_code() !=null && yunPayCallBack.getResult_code().equals("01")){
|
|
|
|
+ logger.info(" -------------------------云闪付回调成功-------------------------- ");
|
|
|
|
+ //业务逻辑
|
|
|
|
+
|
|
|
|
+ //返给云闪付状态码
|
|
|
|
+ result.put("return_code", "01");
|
|
|
|
+ result.put("return_msg", "success");
|
|
|
|
+ }else {
|
|
|
|
+ result.put("return_code", "02");
|
|
|
|
+ result.put("return_msg", "fail");
|
|
|
|
+ }
|
|
|
|
+ logger.info("返给云闪付结果信息:" + result);
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
//插入客户信息
|
|
//插入客户信息
|
|
public CustomerManage insertCustomerManage(Map infoMap) throws ParseException {
|
|
public CustomerManage insertCustomerManage(Map infoMap) throws ParseException {
|
|
CustomerManage customerManage = new CustomerManage(); //存放客户信息
|
|
CustomerManage customerManage = new CustomerManage(); //存放客户信息
|