介绍两个免费画时序图的网站

下面是一个参考 微信支付流程UML 时序图(Sequence Diagram),涵盖了三大参与者:

  1. Client(客户端)
  2. Server(商户服务器)
  3. WeChat Platform(微信支付平台)

涵盖的主要步骤如下:


示例流程(以“Native 支付”或“JSAPI 支付”为例):

  1. 客户端发起支付请求
  2. 服务端向微信平台获取支付预订单(prepay_id)
  3. 服务端将支付参数返回给客户端
  4. 客户端调起微信支付组件
  5. 微信平台处理支付并通知服务端
  6. 服务端通知客户端支付结果

时序图(文本形式)

Client -> Server: 请求发起支付(商品信息)
Server -> WeChat Platform: 创建统一下单接口(prepay_id)
WeChat Platform -> Server: 返回预支付信息(prepay_id)
Server -> Client: 返回支付参数(appId, timeStamp, nonceStr, sign 等)

Client -> WeChat Platform: 调起微信支付(带 prepay_id 参数)
WeChat Platform -> Client: 返回支付成功/失败界面

WeChat Platform -> Server: 支付结果异步通知(notify_url)
Server -> WeChat Platform: 返回通知接收成功(HTTP 200 OK)

Client -> Server: 查询支付结果
Server -> Client: 返回支付状态(成功/失败)

可视化 UML 时序图(建议工具)

你可以把上面的文本复制到以下工具生成时序图:


PlantUML 代码(你可以复制进工具中生成图)

@startuml
actor Client
participant Server
participant "WeChat Platform" as WeChat

Client -> Server: 发起支付请求(商品信息)
Server -> WeChat: 创建预订单(统一下单 API)
WeChat --> Server: 返回 prepay_id 等支付参数
Server -> Client: 返回调起支付的参数包

Client -> WeChat: 使用参数调起微信支付
WeChat --> Client: 返回支付成功/失败界面

WeChat -> Server: 支付结果异步通知(notify_url)
Server --> WeChat: 返回通知接收成功(HTTP 200)

Client -> Server: 查询支付状态
Server --> Client: 返回支付成功/失败
@enduml

下面是www.plantuml.com结果:在这里插入图片描述

下面是sequencediagram.org结果(免费):

在这里插入图片描述

其中PlantUML 也可以画流程图(免费):

@startuml
start

:客户端发起支付请求;
:服务端生成订单信息;

:服务端调用微信统一下单接口;
if (微信平台返回 prepay_id?) then (是)
  :服务端将支付参数返回客户端;
else (失败)
  stop
endif

:客户端调用微信支付组件;

:用户确认并完成支付;

:微信平台发起支付请求;
:微信平台处理支付;

if (支付成功?) then (是)
  :微信平台异步通知服务端;
  :服务端验证签名和订单状态;
  :服务端更新订单状态为“已支付”;
  :服务端返回接收成功 (HTTP 200);
else (失败)
  :支付失败,平台或客户端提示;
endif

:客户端查询支付结果;
:服务端返回支付状态;

stop
@enduml

出图:
在这里插入图片描述

下面是不免费的

https://www.processon.com/ 确实要好看很多
在这里插入图片描述

### 绘制时序图的在线工具推荐 对于绘制时序图的需求,可以选择多种在线工具来实现这一目标。以下是几个常用的在线工具及其特点: #### 1. **WaveDrom** WaveDrom 是一种基于 Web 的时序图生成器,支持通过简单的文本描述自动生成高质量的时序图[^1]。它具有以下优点: - 支持实时预览功能。 - 提供嵌入式代码片段,便于集成到文档或网页中。 - 使用 JSON 或 YAML 格式的输入文件,简化了复杂图形的设计过程。 可以通过访问其官方网站 https://wavedrom.com/ 进行体验。 ```json { "signal": [ { "name": "clk", "wave": "p....." }, { "name": "data", "wave": "x.x.x.", "data": ["H", "L"] } ] } ``` 上述代码示例展示了一个基本的波形定义方法,用户可以根据需求调整参数以满足具体场景的要求。 --- #### 2. **Draw.io (diagrams.net)** 虽然 Draw.io 主要用于流程图和网络拓扑设计,但它也提供了灵活的时间轴组件,能够用来创建基础版的时序图[^2]。该平台的优势在于免费开源以及跨平台兼容性良好。 操作方式如下: - 打开 draw.io 并新建项目; - 添加时间线形状至布区域; - 调整各信号层位置并标注相应状态变化点。 网址链接:https://app.diagrams.net/ --- #### 3. **PlantUML** PlantUML 是一款专注于 UML 图表生成的语言框架,其中包含专门针对序列图的支持模块。尽管严格意义上讲这不是纯粹意义上的硬件电平切换类别的时序表示形式,但对于某些逻辑关系表达仍然非常有用。 语法实例: ```plantuml @startuml participant A participant B A -> B: sync message activate B B --> A: response deactivate B @enduml ``` 此段脚本会渲染成两个对象之间交互的过程示意。更多详情可查阅官方手册地址 http://plantuml.com/timing-diagram. --- #### 总结 每种方案都有各自适用范围,在挑选之前建议先明确最终成果预期样式再做决定。如果追求极致简洁直观的话,则优先考虑 WaveDrom;而当面临较为复杂的多维度关联分析任务时,或许 PlantUML 更加合适一些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值