序列图

代码以及说明

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
@startuml
' 定义顶部标题,非必须支持 HTML
title
微信小程序支付
end title

' 创建一个画布,盒子,非必须
' skinparam backgroundColor #EEEBDC
skinparam ParticipantPadding 20
skinparam BoxPadding 20

' 使用刚才定义画布,将 end box 之前的内容都装进盒子里, 非必须
' box
' 为信息自动编号,非必须
autonumber
' 定义实体类型,非必须
actor 用户 as User
' 普通参与者,as 定义别名,用法类似常量,非必须
participant 微信小程序 as MiniProgram
' 指定参与者惭色,非必须
participant 商户系统 as Business #red
entity 微信后台 as Wechat

' 调用过程
User -> MiniProgram: 进入小程序,下单()
' 激活生命线
activate User

MiniProgram -> Business: 请求下单支付()
activate MiniProgram
' 为生命线配置颜色
activate Business #red

Business -> Wechat: 调用小程序登录API()
activate Wechat

' 返回写法有两种,等效
' Business <<- Wechat: 返回 OpenId()
Wechat -->> Business: 返回 OpenId()
' 撤销激活生命线
deactivate Wechat

' 自调用
Business -> Business: 生成商户订单()
' 绘制自调用嵌套生命线
' 不关闭嵌套生命线,也可以在嵌套生命线中调用过程,直到生命线关闭
activate Business #red
deactivate Business

Business -> Wechat: 调用统一下单API()
activate Wechat
Wechat -->> Business: 返回预付订单信息(perpay_id)
deactivate Wechat

Business -> Business: 将组合数据再次签名
activate Business #red
deactivate Business

Business -->> MiniProgram: 返回支付参数(5个参数和Sign)
deactivate Business
deactivate MiniProgram

User -> MiniProgram: 用户确认支付()
activate MiniProgram

MiniProgram -> Wechat: 鉴权调起支付()
activate Wechat
Wechat -->> MiniProgram: 返回支付结果()
deactivate Wechat

MiniProgram -> MiniProgram: 展示支付结果()
activate MiniProgram
deactivate MiniProgram
' 上一行只是关闭了嵌套生命线,所以需要再关闭一次原有的生命线
deactivate MiniProgram

Wechat -->> Business: 推送支付结果()
activate Wechat

activate Business #red
Business -> Business: 更新订单状态()
activate Business #red
deactivate Business #red
deactivate Business

deactivate Wechat
' 关闭盒子
' end box
@enduml

用例图

状态图

组件图

类图

活动图