# 易宝与微信支付V3的Java集成解决方案 **Repository Path**: clmg-cloud/pre-pay ## Basic Information - **Project Name**: 易宝与微信支付V3的Java集成解决方案 - **Description**: 易宝与微信支付V3的Java集成解决方案 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-11-27 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: 易宝与微信支付V3的Java集成解决方案 ## README # 企业级聚合支付服务集成示例 本项目是一个基于Spring Boot的生产级别聚合支付集成解决方案,完整实现了易宝支付与微信支付官方V3接口的核心业务流程。代码源自真实商业项目,具备极高的参考和复用价值。 ## 核心特性 ### 双渠道支付集成 - 易宝聚合支付:支持微信、支付宝、银联云闪付、数字人民币等多种渠道 - 微信支付官方V3接口:符合微信支付最新规范,使用API证书签名验证 ### 企业级规范 - 清晰的分层架构:规范的Service层设计,易于集成到现有系统 - 完善的异常处理:完整的try-catch机制,确保支付流程稳定性 - 详细的日志记录:关键节点均有日志输出,便于生产环境排查问题 - 安全配置管理:敏感信息常量化管理,符合安全开发规范 ### 业务功能覆盖 - 预支付订单创建 - 多支付方式配置(APP支付、小程序支付、公众号支付等) - 支付结果异步通知处理 - 完整的错误码处理和用户提示 ## 技术栈 - Java 8 + Spring Boot - 易宝官方 Yop SDK - 微信支付V3 API (OkHttp客户端) - Hutool - JSON处理工具库 - Lombok - 代码简化 - Maven - 依赖管理 ## 项目结构 src/main/java/com/example/pay/ ├── service/ │ ├── PayService.java # 支付服务接口 │ └── impl/ │ └── PayServiceImpl.java # 支付服务实现(核心文件) ├── vo/ # 值对象 │ ├── PrePayRequest.java # 支付请求参数 │ ├── YBPayReq.java # 易宝支付请求 │ ├── WeChatPayReq.java # 微信支付请求 │ └── ResultVO.java # 统一返回结果 ├── nums/ │ └── SceneEnum.java # 支付场景枚举 └── util/ # 工具类 └── DateUtil.java # 日期工具 ## 核心代码说明 ### 易宝支付集成 (ybPay方法) - 支持多种支付方式:USER_SCAN(用户扫码)、MINI_PROGRAM(小程序)、WECHAT_OFFICIAL(公众号)等 - 支持多种支付渠道:WECHAT(微信)、ALIPAY(支付宝)、UNIONPAY(银联) - 完整的业务参数:商品名称、分账设置、支付场景、过期时间等 ### 微信支付集成 (weChatPay方法) - 基于微信支付V3最新接口规范 - 使用API证书进行双向签名验证 - 支持APP支付方式,可扩展其他支付场景 ## 配置说明 ### 易宝支付配置 在PayServiceImpl中配置以下参数: private static final String PARENT_MERCHANT_NO = "${你的易宝商户号}"; private static final String YB_PAY_CALLBACK_URL = "${你的回调地址}"; ### 微信支付配置 在PayServiceImpl中配置以下参数: public static final String MCH_Id = "${微信商户号}"; private static final String CERTIFICATE_SERIAL_NO = "${API证书序列号}"; public static final String PRIVATE_KEY_PATH = "${私钥文件路径}"; ## 使用示例 ### 易宝支付调用 YBPayReq request = new YBPayReq(); request.setTraderOrderNo("ORDER_123456"); request.setOrderAmount("0.01"); request.setPayWay("MINI_PROGRAM"); request.setChannel("WECHAT"); request.setGoodsName("测试商品"); ResultVO result = payService.ybPay(request); ### 微信支付调用 WeChatPayReq request = new WeChatPayReq(); request.setAppid("wxappid"); request.setDescription("商品描述"); request.setOutTradeNo("ORDER_123456"); request.setAmount(new Amount("CNY", 1)); ResultVO result = payService.weChatPay(request); ## 项目价值 本代码已在我参与的煤矿运销SaaS平台中经过生产环境验证,稳定处理了该平台所有的线上支付交易。通过本项目,你可以: - 快速集成:直接复用经过验证的支付代码 - 降低风险:避免支付集成过程中的常见坑点 - 节省时间:基于企业级规范,减少开发周期 - 灵活扩展:清晰的架构便于扩展其他支付渠道 ## 许可证 本项目仅用于技术交流和学习参考,实际使用请遵守各支付平台的相关协议。 ⭐ 如果这个项目对你有帮助,请给个Star!