# sqtpay-demo-java **Repository Path**: chinshinfeeng/sqtpay-demo-java ## Basic Information - **Project Name**: sqtpay-demo-java - **Description**: 商企通支付 APIv1的Java SDK及服务端示例,客户侧研发可参考demo进行开发,并利用SDK中代码进行开发测试、联调测试 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-09 - **Last Updated**: 2023-04-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 商户侧数据模型 商企通作为供给商户,接入客户的收银台系统。客户作为支付商户,接入商企通的供给资源。下文将以商户指代对接商企通供给资源的客户。 商户侧模型设计主要存在三类,目前已经有几百家客户接入了商企通三方收银台,分析发现客户侧数据模型设计 主要分为三类 ## 一 A类模型 存在订单表和退款表,通过订单ID来串起用户的支付和退款动作,不关注用户是否多次唤起收银台 - type_a_order_info 订单表 - type_a_refund_info 退款表 ## 二 B类模型 存在订单表、支付表和退款表,通过订单ID+支付流水ID来串起用户的支付和退款动作,用户下单后产生唯一的订单号,但是每产生一个交易动作,就会产生一个新的支付流水ID。如果首次支付失败,再次尝试支付,订单ID为同一个,但是有两个支付流水ID - type_b_order_info 订单表 - type_b_pay_info 支付表 - type_b_refund_info 退款表 ## 三 C类模型 存在支付表和退款表,通过商企通侧交易号串起用户的支付和退款动作,关注用户是否多次唤起收银台,不关注实际订单信息 - type_c_pay_info 支付表 - type_c_refund_info 退款表 # 最佳实践 商户侧研发同学在对接商企通三方收银台时,需要根据自身系统模型来正确处理业务逻辑。 - 如果客户模型时A,实现时可以参考com.meituan.sqt.mock.domain.modelA.TypeAThirdPayService - 如果客户模型时B,实现时可以参考com.meituan.sqt.mock.domain.modelB.TypeBThirdPayService - 如果客户模型时C,实现时可以参考com.meituan.sqt.mock.domain.modelC.TypeCThirdPayService # 如何运行示例代码 需要在本地机器上准备Java开发环境(建议Java版本为JDK 1.8+),服务端是基于spring boot运行。 在运行前需要保证本地机器上安装有MySQL数据库,并执行init_db.sql创建合适的库表,修改application.properties中数据库配置