﻿# 商户管理订阅计划

## 1. 交互流程

```mermaid
%%{init: {
  'theme': 'base',
  'themeVariables': {
    'primaryColor': '#e6f0ff',
    'primaryTextColor': '#333',
    'primaryBorderColor': '#5b9bd5',
    'lineColor': '#888',
    'actorMargin': 40,
    'noteBkgColor': '#0056b3',
    'noteTextColor': '#ffffff',
    'noteBorderColor': '#004a99'
  }
}}%%
sequenceDiagram
    participant User as 用户
    participant MServer as 商户服务端
    participant PM as PayerMax

    %% 首次支付逻辑框
    rect rgb(235, 245, 255)
        Note over User, PM: 首次支付
        User->>MServer: 1. 用户选择支付方式
        MServer->>PM: 2. 用户发起支付并绑定请求
(API对接)
        PM-->>MServer: 3. PayerMax回传
支付及绑定成功信息
        MServer-->>User: 4. 通知用户支付成
功，绑定完成
    end

    %% 二次支付逻辑框
    rect rgb(235, 245, 255)
        Note over User, PM: 二次支付
        MServer->>PM: 1. 商户向PayerMax请求扣款
        PM-->>MServer: 2. PayerMax完成支付，
回传支付成功信息
        MServer-->>User: 3. 通知用户支付成功
    end
```

## 2. 规则说明

- 商家代扣可分为首笔扣款和后续代扣；首笔扣款需要用户绑定支付方式，后续代扣是商户发起的扣款，扣款过程中无需用户参与；

- 首笔扣款时，支持使用收银台模式、API模式和前置组件模式来集成；后续扣款时，无需用户参与，只需使用API完成扣款；

- 首笔扣款时，交易金额（totalAmount）支持0元和大于0元的具体金额；如果交易金额为0元，则表示只绑定支付方式；如果交易金额大于0，则表示发起支付并绑定支付方式；交易成功后，PayerMax会为该用户的支付方式生成一个token（paymentTokenID）并通知给商户，用于进行后续代扣；

- 后续扣款时，上送paymentTokenID来替代用户支付方式，即可完成扣款。
