Skip to content

概述

EBAOZU系统的支付宝集成采用分层架构,包括基础服务层、业务服务层、控制器层和事件监听层。本文档详细介绍支付宝模块的整体架构、核心组件和调用关系。

架构设计

整体架构图

┌─────────────────────────────────────────────────────────────────────────┐
│                    支付宝集成架构                                        │
├─────────────────────────────────────────────────────────────────────────┤
│                                                                         │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                    控制器层 (Controller)                         │    │
│  ├─────────────────────────────────────────────────────────────────┤    │
│  │  AlipayPartner.php — 支付宝服务商管理(25个方法)                 │    │
│  │  ├── 商户管理:getMerchantList, updateMiniInfo                   │    │
│  │  ├── 版本管理:miniVersionList, miniVersionUpload, ...          │    │
│  │  ├── 上架管理:miniVersionOnline, miniVersionOffline, ...       │    │
│  │  ├── 体验版:miniExperienceCreate, miniExperienceQuery, ...     │    │
│  │  └── 成员管理:appMembersQuery, appMembersCreate, ...           │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                              ↓                                          │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                    服务层 (Services)                             │    │
│  ├─────────────────────────────────────────────────────────────────┤    │
│  │  基础服务:                                                       │    │
│  │  ├── AlipayBaseServices.php      # 支付宝基础服务                │    │
│  │  ├── AlipayServices.php          # 支付宝核心服务                │    │
│  │  ├── CommonServices.php          # 公共服务                      │    │
│  │  └── EasyAlipayServices.php      # EasySDK封装                  │    │
│  │                                                                 │    │
│  │  芝麻信用:                                                       │    │
│  │  ├── CreditZhimaServices.php     # 芝麻信用核心服务              │    │
│  │  └── AlipayZhimaTraits.php       # 芝麻信用Trait                │    │
│  │                                                                 │    │
│  │  租赁行业:                                                       │    │
│  │  ├── CommerceRentServices.php    # 租赁行业交易服务              │    │
│  │  └── TradeComponentServices.php  # 交易组件服务                  │    │
│  │                                                                 │    │
│  │  商户服务:                                                       │    │
│  │  ├── AliMerchantService.php      # 商户服务                      │    │
│  │  ├── AlipayPartnerServices.php   # 合作伙伴服务                  │    │
│  │  ├── AlipayPartnerMerchantServices.php # 合作伙伴商户服务        │    │
│  │  └── AlipayPartnerMiniServices.php # 合作伙伴小程序服务          │    │
│  │                                                                 │    │
│  │  营销服务:                                                       │    │
│  │  ├── AlipayMarketServices.php    # 营销服务                      │    │
│  │  ├── AliLightPromotionService.php # 轻量级营销服务               │    │
│  │  └── MerchantCouponsServices.php # 商户优惠券服务                │    │
│  │                                                                 │    │
│  │  用户服务:                                                       │    │
│  │  └── AlipayUserServices.php      # 用户服务                      │    │
│  │                                                                 │    │
│  │  其他服务:                                                       │    │
│  │  ├── QuickOrderServices.php      # 快捷下单服务                  │    │
│  │  ├── RecycleServices.php         # 回收服务                      │    │
│  │  ├── RoutineServices.php         # 生活号服务                    │    │
│  │  └── AtoOpenApiServices.php      # 开放API服务                   │    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                              ↓                                          │
│  ┌─────────────────────────────────────────────────────────────────┐    │
│  │                    事件监听层 (Listener)                         │    │
│  ├─────────────────────────────────────────────────────────────────┤    │
│  │  pay.create.order → PayCreateOrderListener  # 支付订单创建       │    │
│  │  pay.notify → PayNotifyListener             # 支付异步回调       │    │
│  │  pay.mchNotify → PayMchNotifyListener       # 商家转账回调       │    │
│  │  pay.scan.notify → ScannedNotifyListener    # 扫码回调(空壳)     │    │
│  │  pay.refunded.notify → ScannedNotifyListener # 退款回调(映射错误)│    │
│  └─────────────────────────────────────────────────────────────────┘    │
│                                                                         │
└─────────────────────────────────────────────────────────────────────────┘

核心组件关系

AlipayServices (核心服务)
├── AlipayBaseServices (基础服务)
│   └── EasyAlipayServices (EasySDK封装)
├── CreditZhimaServices (芝麻信用)
│   └── AlipayZhimaTraits (Trait)
├── CommerceRentServices (租赁行业)
│   └── AlipayZhimaTraits (Trait)
├── TradeComponentServices (交易组件)
├── AliMerchantService (商户服务)
├── AlipayPartnerServices (合作伙伴)
│   ├── AlipayPartnerMerchantServices (合作伙伴商户)
│   └── AlipayPartnerMiniServices (合作伙伴小程序)
├── AlipayMarketServices (营销服务)
│   ├── AliLightPromotionService (轻量级营销)
│   └── MerchantCouponsServices (商户优惠券)
├── AlipayUserServices (用户服务)
├── QuickOrderServices (快捷下单)
├── RecycleServices (回收服务)
├── RoutineServices (生活号)
└── AtoOpenApiServices (开放API)

核心服务说明

AlipayServices — 支付宝核心服务

支付宝核心服务,提供支付、查询、退款等基础功能。

主要方法:

  • create() — 创建支付订单
  • query() — 查询支付状态
  • refund() — 退款
  • microPay() — 条码支付

代码来源:app/services/alipay/AlipayServices.php

CreditZhimaServices — 芝麻信用服务

芝麻信用免押服务,提供免押冻结、解冻、买断等功能。

主要方法:

  • createFreezeOrder() — 创建免押冻结订单
  • freezeOrder() — 冻结订单
  • unfreezeOrder() — 解冻订单
  • buyoutPay() — 买断支付
  • queryFreezeOrder() — 查询冻结状态

代码来源:app/services/alipay/CreditZhimaServices.php

CommerceRentServices — 租赁行业交易服务

支付宝租赁行业交易服务,提供租赁订单创建、代扣、续租、归还等功能。

主要方法:

  • createOrder() — 创建租赁订单
  • pay() — 代扣支付
  • reletAppend() — 续租
  • receive() — 确认收货
  • returnGoods() — 归还
  • aftersaleConfirm() — 售后确认

代码来源:app/services/alipay/CommerceRentServices.php

TradeComponentServices — 交易组件服务

支付宝小程序交易组件服务,提供订单同步、状态更新等功能。

主要方法:

  • orderCreate() — 创建交易组件订单
  • orderModify() — 修改订单
  • orderSync() — 同步订单状态

代码来源:app/services/alipay/TradeComponentServices.php

AlipayPartnerServices — 合作伙伴服务

支付宝合作伙伴服务,提供小程序管理、版本管理、审核等功能。

主要方法:

  • getMerchantList() — 获取商户列表
  • miniVersionList() — 获取版本列表
  • miniVersionUpload() — 上传版本
  • miniVersionAuditApply() — 提交审核
  • miniVersionOnline() — 上架

代码来源:app/services/alipay/AlipayPartnerServices.php

支付事件

事件注册

所有支付事件在 app/event.php 中注册:

事件键监听器类说明
pay.create.orderPayCreateOrderListener支付订单创建
pay.notifyPayNotifyListener支付异步回调
pay.mchNotifyPayMchNotifyListener商家转账回调
pay.scan.notifyScannedNotifyListener扫码回调(空壳)
pay.refunded.notifyScannedNotifyListener退款回调(映射错误)

代码来源:app/event.php:63-67

支付回调处理

支付回调通过 Hook 机制路由到 PayNotifyServices 的对应方法:

业务类型回调方法说明
商品订单WechatProduct / AliyunProduct商品购买
积分订单WechatIntegral / AliyunIntegral积分购买
充值WechatUserRecharge / AliyunUserRecharge余额充值
会员卡WechatMember / AliyunMember会员购买
租赁分期AliyunLease租赁代扣
押金AliyunDeposit押金支付
买断AliyunBuyout买断支付
违约金AliyunOverdue违约金支付
损耗费AliyunDamage货损赔付
配送费AliyunDelivery配送费支付

代码来源:app/services/pay/PayNotifyServices.php:32-389

配置项

支付宝配置

配置项说明代码位置
alipay_app_id支付宝应用IDAlipayServices.php
alipay_private_key应用私钥AlipayServices.php
alipay_public_key支付宝公钥AlipayServices.php
alipay_notify_url异步通知地址AlipayServices.php
alipay_encrypt_keyAES密钥AlipayServices.php
ali_pay_status支付宝支付开关PayServices.php

芝麻信用配置

配置项说明代码位置
alipay_zhima_freeratio租押分离押金比例CreditZhimaServices.php
lease_check_type代扣签约类型StoreOrderServices.php

常见问题

Q: 支付宝支付失败怎么办?

A: 检查以下配置:

  1. alipay_app_id 是否正确
  2. alipay_private_keyalipay_public_key 是否匹配
  3. ali_pay_status 是否开启
  4. 异步通知地址是否可访问

Q: 芝麻免押失败怎么办?

A: 检查以下条件:

  1. 用户芝麻信用分是否满足要求
  2. alipay_zhima_freeratio 配置是否正确
  3. 订单是否满足免押条件

Q: 租赁行业交易代扣失败怎么办?

A: 检查以下条件:

  1. 代扣时间是否在 7:00-22:00 之间
  2. 用户支付宝余额是否充足
  3. 代扣协议是否已签署

承信租多门店租赁商城系统官方文档