银联支付之在线网关支付

发布时间:2025-12-09 16:12:34 浏览次数:4

银联支付之在线网关支付

  • 准备
    • 下载SDK
    • 下载证书
  • SDK示例Demo
    • 修改acp_sdk.properties
    • 启动项目
    • 测试
  • 项目集成
    • 添加依赖
    • 集成SDK
    • 支付类型与支付信息对象
    • Mapper接口
    • 支付接口
    • 支付信息
    • 真正支付接口
    • 回调接口
    • 加载配置信息
    • 添加OR修改配置
    • 添加数据库表
    • 添加支付类型信息
  • 执行测试
    • 生成支付信息
    • 开始支付
    • 支付状态查询
    • 商户测试中心查询

准备

中国银联.开放平台 https://open.unionpay.com/tjweb/index

选择业务产品.全渠道.在线网关支付

下载SDK

在线网关支付页面下载SDK

选择合适的SDK,导入开发工具

下载证书

在线网关支付页面选择网关测试进入商户入网测试中心,在测试参数项下载证书

SDK示例Demo

SDK示例Demo导入开发工具 ,并进行相应配置

修改acp_sdk.properties

配置项目访问路径配置4个证书存放路径 #前台通知地址,填写银联前台通知的地址,必须外网能访问acpsdk.frontUrl=http://localhost:9999/ACPSample_B2C/frontRcvResponse#########################入网测试环境签名证书配置 ################################# 签名证书路径,必须使用绝对路径,如果不想使用绝对路径,可以自行实现相对路径获取证书的方法;测试证书所有商户共用开发包中的测试签名证书,生产环境请从cfca下载得到。acpsdk.signCert.path=D:/certs/acp_test_sign.pfx##########################加密证书配置################################# 敏感信息加密证书路径(商户号开通了商户对敏感信息加密的权限,需要对 卡号accNo,pin和phoneNo,cvn2,expired加密(如果这些上送的话),对敏感信息加密使用)acpsdk.encryptCert.path=d:/certs/acp_test_enc.cer##########################验签证书配置################################# 验签中级证书路径(银联提供)acpsdk.middleCert.path=D:/certs/acp_test_middle.cer# 验签根证书路径(银联提供)acpsdk.rootCert.path=D:/certs/acp_test_root.cer

启动项目

配置后启动项目,示例中包含了各种Demo,后续项目集成可参考

测试

测试消费样例,卡号与支付密码在测试参数处

将SDK示例项目配置文件复制到项目中,修改外网能访问的前台通知地址

#前台通知地址,填写银联前台通知的地址,必须外网能访问acpsdk.frontUrl=http://jackchen.imwork.net

修改application.yml

server:port: 8888spring:application:name: pay-serviceredis:host: 127.0.0.1password:port: 6379#数据库连接信息datasource:url: jdbc:mysql://127.0.0.1:3306/pay?serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver

添加数据库表

CREATE TABLE `payment_info` (`id` int(11) NOT NULL AUTO_INCREMENT,`type_id` int(11) DEFAULT NULL,`order_id` varchar(255) DEFAULT NULL,`platformorder_id` varchar(255) DEFAULT NULL,`price` decimal(10,4) DEFAULT NULL,`source` varchar(255) DEFAULT NULL,`state` int(255) DEFAULT NULL,`pay_message` text,`create_date` datetime DEFAULT NULL,`update_date` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=utf8 CREATE TABLE `payment_type` (`id` int(11) NOT NULL AUTO_INCREMENT,`type_name` varchar(255) DEFAULT NULL,`front_url` varchar(255) DEFAULT NULL,`back_url` varchar(255) DEFAULT NULL,`merchant_id` varchar(255) DEFAULT NULL,`create_date` datetime DEFAULT NULL,`update_date` datetime DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8

添加支付类型信息

支付类型表添加数据作为支付类型的配置, 回调地址需被外网访问

INSERT INTO `pay`.`payment_type`(`id`, `type_name`, `front_url`, `back_url`, `merchant_id`, `create_date`, `update_date`) VALUES (1, 'yinlianPay', 'http://jackchen.imwork.net/pay/callback/syn', 'http://jackchen.imwork.net/pay/callback/asyn', '777290058110048', '2021-08-30 16:25:51', NULL);

执行测试

生成支付信息

请求http://jackchen.imwork.net/generatePaymentInfo接口,生成支付信息,得到token

开始支付

以得到的token访问http://jackchen.imwork.net/payGateway?token=pay-3bb87b52-35e9-4592-ae72-1516bebd8754接口跳转到支付网关



支付成功,返回商户

支付状态查询

访问https://jackchen.imwork.net/queryPayStatus?orderId=qwesdfsfdfds431&txnTime=20210830180004接口查询订单状态

商户测试中心查询

商户测试中心查询交易信息

可看到很重要的2个信息:回调地址

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477