Java写银联支付C扫B经验分享--框架SSM

本文分享了使用Java编程语言,结合SSM(Spring、SpringMVC、MyBatis)框架实现银联支付C扫B模式的经验。详细介绍了配置POM.xml文件、设置jdbc配置以及Controller、Service和ServiceImpl层的实现。
摘要由CSDN通过智能技术生成

用Java写银联支付C扫B经验分享–框架SSM

POM.xml

<!-- C扫B支付 -->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.16.12</version>
  </dependency>

jdbc配置文件-隐私信息已经藏起来了。请不要使用下面数据

// A code block
#全民付移动c扫b 接口公共参数配置-------------------------------------------------------
#银商平台接口地址
url=https://qr-test2.chinaums.com/netpay-route-server/api/
#商户号
mid=898340149000***
#终端号
tid=88880***
#机构商户号
instMid=QRPAYDEFA***
#来源系统
msgSrc=WWW.TEST.COM
#通讯秘钥
key=fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW*****

#全民付移动c扫b 获取二维码接口参数配置---------------------------------------------------
#消息类型:获取二维码
msgType_getQRCode=bills.getQRCode

#全民付移动c扫b 账单查询接口参数配置------------------------------------------------------
#消息类型:账单查询
msgType_query=bills.query

#全民付移动c扫b 订单退款接口参数配置------------------------------------------------------
#消息类型:订单退款
msgType_refund=bills.refund

#全民付移动c扫b 根据商户终端号查询此台终端最后一笔详单情况 接口参数配置------------------------------------------------------
#消息类型:根据商户终端号查询此台终端最后一笔详单情况
msgType_queryLastQRCode=bills.queryLastQRCode

#全民付移动c扫b 查询二维码静态信息 接口参数配置------------------------------------------------------
#消息类型:查询二维码静态信息
msgType_queryQRCodeInfo=bills.queryQRCodeInfo

#全民付移动c扫b 关闭二维码 接口参数配置------------------------------------------------------
#消息类型:关闭二维码
msgType_closeQRCode=bills.closeQRCode 

Controller

// An highlighted block

package com.kingee.dlaq.lclp.controller;

import static com.kingee.hidp.common.util.CScanBUtil.makeSign;

import java.util.Date;
import java.util.Map;

import org.apache.commons.lang.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.alibaba.fastjson.JSON;
import com.kingee.dlaq.lclp.service.CScanBService;
import com.kingee.dlaq.lclp.util.Util;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import com.wordnik.swagger.annotations.ApiParam;

import net.sf.json.JSONObject;

/**
 * @author 张
 * @date 2020年7月10日 上午9:13:33
 * @Description: C扫B
 */
@Api(value = "/lp", description = "银联支付")
@Controller
@RequestMapping("/lp/CSB")
public class CScanBController
{
   
	@Autowired
	private CScanBService cScanBService;

	private String mid = "898340149000005";

	private String tid = "88880001";

	private String key = "fcAmtnx7MwismjWNhNKdHC44mNXtnEQeJkRrhKJwyrW2ysRR";

	private String msgSrc = "WWW.TEST.COM";

	private String instMid = "QRPAYDEFAULT";

	// 获取二维码模块
	@RequestMapping(value = "/getQrCode", method = RequestMethod.POST)
	@ApiOperation(value = "获取二维码页面", notes = "获取二维码页面", response = JSON.class, httpMethod = "POST", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
	@ResponseBody
	public String getQrCode(
//			@ApiParam(required = true, name = "departId", value = "部门ID") @RequestParam(value = "departId", required = true) String departId,
//			@ApiParam(required = true, name = "billNo", value = "账单号(四位数字)") @RequestParam(value = "billNo", required = false) String billNo,
//			@ApiParam(required = false, name = "billDate", value = "账单日期") @RequestParam(value = "billDate", required = false) Date billDate,
			@ApiParam(required = true, name = "totalAmount", value = "支付总金额") @RequestParam(value = "totalAmount", required = true) String totalAmount
//			@ApiParam(required = false, name = "msgId", value = "消息ID") @RequestParam(value = "msgId", required = false) String msgId,
//			@ApiParam(required = false, name = "srcReserve", value = "请求系统预留字段") @RequestParam(value = "srcReserve", required = false) String srcReserve,
//			@ApiParam(required = false, name = "billDesc", value = "账单描述") @RequestParam(value = "billDesc", required = false) String billDesc,
//			@ApiParam(required = false, name = "divisionFlag", value = "分账标记") @RequestParam(value = "divisionFlag", required = false) Boolean divisionFlag,
//			@ApiParam(required = false, name = "platformAmount", value = "平台商户分账金额") @RequestParam(value = "platformAmount", required = false) BigDecimal platformAmount,
//			@ApiParam(required = false, name = "goods", value = "商户信息") @RequestParam(value = "goods", required = false) JSON goods,
//			@ApiParam(required = false, name = "subOrders", value = "子商户信息") @RequestParam(value = "subOrders", required = false) JSON subOrders,
//			@ApiParam(required = false, name = "memberId", value = "会员号") @RequestParam(value = "memberId", required = false) String memberId,
//			@ApiParam(required = false, name = "counterNo", value = "桌号、柜台号、房间号") @RequestParam(value = "counterNo", required = false) String counterNo,
//			@ApiParam(required = false, name = "expireTime", value = "账单过期时间,为空则不过期") @RequestParam(value = "expireTime", required = false) Date expireTime,
//			@ApiParam(required = false, name = "notifyUrl", value = "支付结果通知地址") @RequestParam(value = "notifyUrl", required = false) String notifyUrl,
//			@ApiParam(required = false, name = "returnUrl", value = "网页跳转地址") @RequestParam(value = "returnUrl", required = false) String returnUrl,
//			@ApiParam(required = false, name = "qrCodeId", value = "二维码ID") @RequestParam(value = "qrCodeId", required = false) String qrCodeId,
//			@ApiParam(required = false, name = "systemId", value = "系统ID") @RequestParam(value = "systemId", required = false) String systemId,
//			@ApiParam(required = false, name = "secureTransaction", value = "担保交易标识") @RequestParam(value = "secureTransaction", required = false) String secureTransaction,
//			@ApiParam(required = false, name = "walletOption", value = "钱包选项") @RequestParam(value = "walletOption", required = false) String walletOption,
//			@ApiParam(required = false, name = "name", value = "实名认证姓名") @RequestParam(value = "name", required = false) String name,
//			@ApiParam(required = false, name = "mobile", value = "实名认证手机号") @RequestParam(value = "mobile", required = false) String mobile,
//			@ApiParam(required = false, name = "certType", value = "实名认证证件类型") @RequestParam(value = "certType", required = false) String certType,
//			@ApiParam(required = false, name = "certNo", value = "实名认证证件号") @RequestParam(value = "certNo", required = false) String certNo,
//			@ApiParam(required = false, name = "fixBuyer", value = "是否需要实名认证") @RequestParam(value = "fixBuyer", required = false) String fixBuyer,
//			@ApiParam(required = false, name = "limitCreditCard ", value = "是否需要限制信用卡支付") @RequestParam(value = "limitCreditCard ", required = false) Boolean limitCreditCard,
//			@ApiParam(required = false, name = "payInfoQueryAddr", value = "支付要素查询地址") @RequestParam(value = "payInfoQueryAddr", required = false) String payInfoQueryAddr,
//			@ApiParam(required = false, name = "installmentNumber", value = "花呗分期数") @RequestParam(value = "installmentNumber", required = false) String installmentNumber,
//			@ApiParam(required = false, name = "asynDivisionFlag", value = "异步分账标记") @RequestParam(value = "asynDivisionFlag", required = false) Boolean asynDivisionFlag
	)
	{
   
		JSONObject json = new JSONObject();
		json.put("mid", mid);
		json.put("tid", tid);
		json.put("msgType", "bills.getQRCode");
		json.put("msgSrc", msgSrc);
		json.put("instMid", instMid);

		// 是否要在商户系统下单,看商户需求 createBill()
		json.put("returnUrl", "http://47.99.194.20/DLAQ/app3/mobile/pay/payResult.html");
		json.put("billNo", Util.genMerOrderId("3194"
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值