使用 PDF4me 在 Power Automate 中从 SharePoint 列表生成瑞士二维码账单并通过电子邮件发送

PDF4me Create SwissQR Bill是一个 Power Automate 操作,它可以将付款详情转换为符合Swiss Payment Standards的二维码单据。该操作指向 SharePoint 列表,能够为收到的每个请求生成二维码单据,并将图像归档到文档库中,将其链接回相应的行,并通过电子邮件发送给债务人。
搜索瑞士二维码账单,你会得到两种答案。一种解释标准:收据和付款部分必须包含哪些内容,有哪些参考格式,以及为什么二维码账单在2022年取代了旧式付款单。另一种是面向开发人员的PHP、JavaScript或Python代码库,用于构建发票软件。介于两者之间的是需要发送二维码账单的公司。付款详情已经存在于一个由专人维护的列表中,而缺失的是生成、存储和发送二维码账单的部分。这就是这个流程,只需五个步骤,无需编写代码。
有人在 SharePoint 列表中添加了一行,内容包括债务人、金额、币种和留言。大约 35 秒后,二维码账单以 PNG 格式出现在文档库中,该行包含指向账单的链接,状态显示为 Generated,债务人可以在收件箱中收到账单,随时扫描。五个操作,标准连接器,无需任何人打开银行门户网站。
基于原因的问答
为什么要把付款详情保存在 SharePoint 列表中?因为知道这些信息的人不会运行脚本。列表行就像一个表单,财务人员都可以填写,它记录了请求历史,而它的列则决定了收据的生成:金额、货币、付款信息,甚至标签的打印语言。
为什么生成 PNG 格式而不是 PDF 格式?因为没有发票可以附加付款单。如果Output Format Type设置为 PDF,则操作会需要一个源文档并将付款信息附加到该文档中。而使用 PNG 格式,它会单独返回付款单,这正是您在二维码账单包含全部信息时所需要的:它可以在 SharePoint 中预览,并且无需下载即可在电子邮件中打开。
为什么选择QRR参考类型?因为它是自动对账的参考类型。QRR 是瑞士的 27 位数字参考编号QRR包含一个校验位,并且只能与QR-IBAN (机构代码在 QR 范围内的IBAN配合使用。当债务人扫描并付款后,系统会返回相应的贷项信息,发票也会自动关闭。如果您不需要此功能,可以选择SCOR或NON参考类型。
为什么要写回指向该行的链接?因为请求本身应该能够回答“此请求是否已发出?”这个问题。流程会将状态设置为Generated,并存储指向图像的链接,因此该列表既是队列又是记录,无需任何人去库中查找发生了什么。
您将获得
输入: SharePoint 列表中的一行,包含发票编号、债务人姓名和地址、金额、币种、留言、语言和电子邮件地址。输出: QR Bills库中的一张瑞士二维码账单 PNG 图片,更新后的同一行包含状态和链接,以及一封发送给债务人的电子邮件,邮件中附有该账单。

一行代表一张二维码账单。 Status和OutputLink由流程写入,而非由填写请求的人员写入。

图书馆里的那张单子,以发票号码命名。

债务人邮箱里也收到了同样的单据,准备扫描。
你需要什么
- Power Automate。打开 Power Automate。基于标准连接器的自动化云流程。SharePoint、 Office 365 Outlook和 PDF4me 无需高级套餐。
- PDF4me API 密钥。获取您的 API 密钥。此流程使用一个 PDF4me 连接, PDF4me Barcode。
- 用于存储请求的 SharePoint 列表。捕获的列表名为Swiss QR Requests,包含以下列: InvoiceNumber、 DebtorName、 Street、 BuildingNo、 PostalCode、 City、 Amount、 Currency、 Language、 Message和Email,以及Status选择列和流程写入的OutputLink列。
- 用于存放票据的文档库。捕获到的数据流会写入名为QR Bills库中。
- 您的债权人信息和QR-IBAN。款项将汇入的账户及其地址。 QR-IBAN用于QRR参考, Swiss Payment Standards规范限制账户只能是瑞士或列支敦士登的发卡机构,且币种只能是瑞士法郎或欧元。
流程概览
- When an item is created (SharePoint)监视
Swiss QR Requests列表。 - Barcode - Create SwissQR Bill (PDF4me Barcode)将收据渲染为
PNG。 - Create file (SharePoint)并将其保存到
/QR Bills中,文件名为SwissQR_<invoice number>.png。 - Update item (SharePoint)将Status设置为
Generated,并填充OutputLink。 - Send an email (V2) (Office 365 Outlook)将付款凭证发送给债务人。
完整流程概述

渲染这张单据是整个流程的全部开销:35 秒中的 31 秒。之后的所有操作都是 SharePoint 和 Outlook 在移动一张小的 PNG 图片。
第一步:当收到请求时,如何触发二维码账单?
目前流程:尚未启动,这是触发点。
列表就是请求队列,因此创建一行就是发出信号。
- 创建Automated cloud flow并选择SharePoint > When an item is created。
- 配置:
- Site Address:
PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport - List Name:
Swiss QR Requests
- Site Address:
When an item is created:配置

新行中的每一列都可以作为令牌用于接下来的四个操作。
步骤 2: Create SwissQR Bill操作需要包含哪些内容?
目前为止的流程: SharePoint 触发器。
这是执行实际操作的操作,它包含的字段比流程中其他所有字段加起来都多。这些字段分为两组:债权人端,即您自己的账户和地址,且始终不变;以及债务人端,来自该行数据。
- 添加条形码 - 通过PDF4me Barcode连接Barcode - Create SwissQR Bill。
- 配置输出和债权人(静态值):
- Output Format Type:
PNG - IBAN:
CH4431999123000889012 - Creditor Name:
Var Schneider AG - Creditor Address Type:
S - 债权人街道,建筑物, PostalCode, City:
Bahnhofstrasse,23,2501,Biel - Reference Type:
QRR - Seperator Line:
LineWithScissor
- Output Format Type:
- 根据触发事件映射债务人和付款情况:
- Amount、 Currency、 Ultimate Debtor Name、 Street、 Building Number、 PostalCode、 City、 Unstructured Message和Language Type均取自匹配列表列的值。
- Ultimate Debtor AddressType:
S - Billing Info、 AV1 Parameters和Av2 Parameters:留空
Barcode - Create SwissQR Bill:配置

地址类型 S 表示结构化地址:街道、门牌号、邮政编码和城市分别填写在单独的字段中。K 则表示需要填写两行自由文本。
每个字段的来源
| 场地 | 捕获流的价值 | 来源 |
|---|---|---|
| Output Format Type | PNG | 静态的,滑移本身 |
| IBAN | CH4431999123000889012 | 静态,您的QR-IBAN |
| 债权人阻挠 | Var Schneider AG, Bahnhofstrasse 23, 2501 Biel | 静态,您自己的地址 |
| Amount, Currency | 1,005.00, CHF | Amount和Currency列 |
| 最终债务人阻断 | Max Muster, Musterstrasse 1, 8000 Zurich | DebtorName, Street, BuildingNo, PostalCode, City |
| Reference Type, Reference | QRR, 210000000003139471430009017 | 此流程中存在静态问题,请参见以下警告 |
| Unstructured Message | Test invoice INV-1001 | Message列 |
| Language Type | English | Language栏 |
| Seperator Line | LineWithScissor | 静止的 |
上线前,务必为每张账单分配唯一的参考编号。目前捕获的流程会在每张账单上发送相同的 27 位QRR参考编号,这在测试环境中没有问题,但在生产环境中却不适用:参考编号的作用是告诉银行每笔付款对应哪张发票,因此使用同一个参考编号会导致所有收到的付款看起来都一样。请在每张发票的列表中或流程中生成参考编号,并确保模 10 校验位正确。此外,参考编号是债务人无需输入的唯一字段,因此无需刻意使其简短或易于记忆。
提示: QRR仅适用于QR-IBAN,即机构代码位于 QR 范围内的IBAN。此处使用的账户CH4431999123000889012的机构31999位于 QR 范围内,因此符合条件。如果您的银行提供的是普通IBAN,请使用SCOR或NON作为Reference Type,或者向银行索取该账户对应的QR-IBAN。
步骤 3:二维码账单图像保存在哪里?
目前流程:触发 + Create SwissQR Bill。
该操作会返回图像,并将其保存到 SharePoint 中。
- 添加SharePoint > Create file。
- 配置:
- Site Address:
PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport - Folder Path:
/QR Bills - File Name:
SwissQR_后跟InvoiceNumber标记和.png - File Content:条形码的Body token Barcode - Create SwissQR Bill
- Site Address:
Create file:配置

将文件命名为发票号码,可以使库文件便于日后搜索。例如,对于INV-1001文件名应SwissQR_INV-1001.png。
步骤 4:如何记录请求结果?
目前为止的流程:触发器、 Create SwissQR Bill和Create file。
索要账单的那一行也是记录账单存在的正确位置。
- 添加SharePoint > Update item。
- 配置:
- Site Address:
PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport - List Name:
Swiss QR Requests - ID:触发器中的ID令牌
- Title:触发器中的Title令牌
- Status Value (高级):
Generated - OutputLink (高级):站点 URL,后跟Create file中的Path令牌
- Site Address:
Update item:配置

Title直接从触发器传递回来。连接器将其视为必需项,并通过提供当前值来保持其不变。
提示:首次运行后,请打开保存的链接。此处的库名为QR Bills,其中包含空格,因此Create file返回的路径包含该空格,浏览器需要对其进行编码。如果链接无法正常打开,请将表达式包裹在encodeUriComponent中,或将库重命名为不包含空格的名称。
第五步:如何通过电子邮件将二维码账单发送给债务人?
目前流程:所有操作均通过Update item完成。
最后一步操作使账单变成了债务人可以采取行动的东西,这正是二维码账单的全部意义所在。
- 添加Office 365 Outlook > Send an email (V2)。
- 配置:
- 收件人:触发器中的Email令牌
- 主题:
Your Swiss QR bill - Body:
Hello, please find your Swiss QR bill attached. Scan the QR code with your banking app to pay.
- 打开Advanced parameters并添加附件:
- Attachments Name - 1:来自Create file Name标记
- Attachments内容 - 1:条形码中的File Content令牌Barcode - Create SwissQR Bill
- Importance:
Normal
Send an email (V2):配置

附件的名称取自刚刚创建的文件,其字节取自生成该附件的操作,因此无需从 SharePoint 中读取任何内容。
运行流程并验证
- Save流量。
- 在Swiss QR Requests中添加一行,其中包含债务人、金额、货币、语言和电子邮件地址,以便您可以进行核查。
- 打开运行历史记录。所有五个操作都应显示为绿色,其中Create SwissQR Bill耗时最长。
- 打开QR Bills库,检查 PNG 文件是否存在,以及是否可以预览为付款单。
- 返回该行: Status应显示为Generated, OutputLink应打开图像。
- 打开电子邮件,使用银行应用程序扫描二维码,确认金额、账户和参考编号是否与您输入的信息一致。
在捕获的运行过程中,整个过程大约耗时35秒,其中31秒用于打印单据本身。输出文件SwissQR_INV-1001.png左侧为收据,右侧为付款信息:账户CH44 3199 9123 0008 8901 2收款方为位于Biel的Var Schneider AG,参考号21 00000 00003 13947 14300 09017,付款人为位于Zurich Max Muster,金额为1005.00瑞士法郎,附加信息块中包含Test invoice INV-1001。
你实际开发了什么?一个基于列表运行的二维码账单系统。财务团队输入他们已知的信息,系统会生成符合瑞士银行要求的账单格式,然后将其归档到其他纸质文件所在的位置,债务人无需打开银行门户或设计工具即可获取账单。
无需重建即可添加的常见变体
这与制作二维码钞票的常用方法有何异同?
每一行描述了一种替代方案。最后一行就是这个流程。
| 比较 | 谁可以出具账单 | 数据来源 | 交付和记录 |
|---|---|---|---|
| 银行门户生成器与此流程对比 | 任何拥有网上银行登录信息的人 | 一张一张地手工录入账单 | 下载后,请自行将其作为附件添加到电子邮件中 |
| 开发者库与此流程 | 应用程序内部的开发人员 | 你的数据库,通过你维护的代码实现 | 无论你围绕它建造什么 |
| ERP或发票模块与此流程 | 任何人,在该产品内部 | ERP自身的记录 | 在该产品内部,如果它包含该功能 |
| 这种流程 | 任何可以向列表中添加行的人 | 团队已维护的 SharePoint 列表 | 已归档、链接到该行并自动通过电子邮件发送 |
常见问题
什么是瑞士二维码钞票?
瑞士二维码账单取代了瑞士旧式的橙红色纸质账单。它左侧是收据,右侧是付款页面,中间印有瑞士十字二维码,其中包含银行所需的所有信息:债权人的账号和地址、债务人、金额、币种和参考编号。扫描二维码即可完成支付,无需再输入账号。
二维码账单的格式由Swiss Payment Standards (SIX)发布的《瑞士支付标准》定义,官方二维码账单宣传单页详细解释了其布局。对于自动化操作而言,其实际优势在于内容固定:只要字段填写正确,任何瑞士银行应用程序都能读取结果。
如何支付瑞士二维码账单?
打开您的银行应用程序,选择扫描选项,然后将摄像头对准瑞士十字二维码。应用程序会自动填写账户信息、金额、币种和参考编号,您只需确认即可。无需手动输入任何内容,这正是该标准存在的意义所在。
纸质收据的运作方式仍然相同。收据部分归您所有,付款部分则交给银行或邮局,打印的数字与代码内容一致。
在瑞士如何生成二维码账单?
三种常见途径。银行在网上银行系统中提供账单生成器,适合每月只开具少量账单的公司。发票和ERP产品会将账单作为发票的一部分自动生成。开发人员则会使用现成的库,并将其集成到自己的软件中。
第四种流程是:将付款详情保存在团队已有的列表中,让Create SwissQR Bill在每次出现相应行时自动生成收据。无需门户网站,无需编写代码,即可生成符合标准的图像,方便您归档、附件或打印。
如何在 Power Automate 中发送带有附件的电子邮件?
使用Office 365 Outlook连接器中的Send an email (V2)功能,打开Advanced parameters,并添加一个包含两个字段的附件:名称和内容。名称仅为文本,因此可以使用先前操作的令牌。内容必须是文件字节,通常是指生成或获取该文件的操作的输出。
在此流程中,名称来自Create file,因此邮件内容与 SharePoint 中的内容一致,而内容则直接来自 PDF4me 操作。如果附件为空或邮件发送失败,内容字段几乎总是指向非文件字节的内容。
故障排除
Swiss Payment Standards规范仅允许在瑞士或列支敦士登发行的账户,账户名称最多21个字符,且货币必须为瑞士法郎 (CHF) 或欧元 (EUR)。来自其他任何地方的IBAN,或者有人在货币栏中填写了美元 (USD),都会在此处失效,而不是在后续操作中失效。
QRR参考号为 27 位数字,以 mod-10 校验位结尾,并且需要一个QR-IBAN。如果账户是普通的IBAN,或者参考号被人为缩短或编辑,请将Reference Type切换为SCOR或NON直到账户和参考号正确为止。
检查附件的Content字段。它需要文件字节,也就是条形码操作的File Content输出。如果令牌返回路径、名称或整个操作正文,则生成的邮件虽然发送成功,但没有任何实际意义。
OutputLink由站点 URL 和新文件的路径组成。库名称中包含空格、两部分之间缺少斜杠,或者站点 URL 末尾有斜杠,都会生成看似正确但实际指向无效的链接。请将存储的值与手动打开文件时地址栏中的值进行比较。
后续步骤
同样的五步模式(一行到达,生成一份文件,归档,给一行盖章,告知客户)适用于任何可以用清单描述的小文件:提醒、送货单、会员卡和票据。