首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

条带令牌和收费Api与条带paymentIntent应用编程接口

条带令牌(Stripe Token)与收费API(Charge API)及条带PaymentIntent应用编程接口

基础概念

  1. 条带令牌(Stripe Token)
    • 条带令牌是由条带(Stripe)生成的一个代表支付信息的临时令牌。它用于在客户端安全地传输信用卡信息到服务器,而不需要直接传输敏感的信用卡数据。
  • 收费API(Charge API)
    • 收费API是条带提供的一个用于创建和处理支付请求的接口。通过这个API,开发者可以创建一个支付请求,并处理支付结果。
  • 条带PaymentIntent应用编程接口
    • PaymentIntent API是条带提供的一个更现代、更灵活的支付处理接口。它允许开发者创建一个PaymentIntent对象,该对象包含了支付的所有必要信息,并可以处理各种支付场景,如预授权、部分支付等。

相关优势

  1. 安全性
    • 条带令牌和PaymentIntent API都提供了高级别的安全性,确保信用卡信息在传输和处理过程中不会被泄露。
  • 灵活性
    • PaymentIntent API提供了更多的支付场景支持,如预授权、部分支付等,使得支付处理更加灵活。
  • 易用性
    • 条带提供了详细的文档和丰富的SDK,使得开发者可以轻松地集成和使用这些API。

类型

  1. 条带令牌
    • 主要类型包括信用卡令牌(Card Token)和银行账户令牌(Bank Account Token)。
  • 收费API
    • 主要用于创建和处理单次支付请求。
  • 条带PaymentIntent应用编程接口
    • 支持多种支付场景,如预授权、部分支付、退款等。

应用场景

  1. 在线购物
    • 用户在电子商务网站上选择商品并结账时,使用条带令牌安全地传输信用卡信息,并通过收费API或PaymentIntent API处理支付。
  • 订阅服务
    • 对于需要定期支付的订阅服务,可以使用PaymentIntent API处理预授权和续费支付。
  • 众筹平台
    • 在众筹平台上,用户可以为项目捐款,使用条带令牌和PaymentIntent API处理捐款支付。

遇到的问题及解决方法

  1. 支付失败
    • 原因:可能是由于信用卡信息错误、网络问题或支付网关限制等原因。
    • 解决方法:检查信用卡信息的正确性,确保网络连接稳定,并查看条带的支付日志以获取更多详细信息。
  • 令牌过期
    • 原因:条带令牌有一定的有效期,过期后需要重新生成。
    • 解决方法:在生成令牌时设置合理的过期时间,并在令牌过期后重新生成新的令牌。
  • PaymentIntent状态错误
    • 原因:可能是由于PaymentIntent对象的状态不正确或支付过程中出现错误。
    • 解决方法:检查PaymentIntent对象的状态,并根据条带的文档处理相应的错误情况。

示例代码

以下是一个使用条带PaymentIntent API创建和处理支付的示例代码:

代码语言:txt
复制
// 初始化条带
const stripe = require('stripe')('your_stripe_secret_key');

// 创建PaymentIntent
async function createPaymentIntent(amount, currency) {
  const paymentIntent = await stripe.paymentIntents.create({
    amount,
    currency,
    payment_method_types: ['card'],
  });
  return paymentIntent;
}

// 确认PaymentIntent
async function confirmPaymentIntent(paymentIntentId, paymentMethodId) {
  const paymentIntent = await stripe.paymentIntents.confirm(paymentIntentId, {
    payment_method: paymentMethodId,
  });
  return paymentIntent;
}

// 示例调用
(async () => {
  const paymentIntent = await createPaymentIntent(1000, 'usd');
  console.log('PaymentIntent created:', paymentIntent);

  const confirmedPaymentIntent = await confirmPaymentIntent(paymentIntent.id, 'pm_card_visa');
  console.log('PaymentIntent confirmed:', confirmedPaymentIntent);
})();

参考链接

通过以上信息,您可以更好地理解条带令牌、收费API和PaymentIntent API的基础概念、优势、类型和应用场景,并解决在开发过程中可能遇到的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

UML中的视觉符号:深入了解棒棒糖、箭头菱形表示法

在面向对象的编程设计中,统一建模语言(UML)是一个非常重要的工具,用于可视化、规范化记录设计决策。...本文将介绍UML中一些常见的视觉符号,包括棒棒糖表示法、箭头表示法以及菱形表示法,帮助我们更好地理解应用这些符号。 棒棒糖表示法:实现接口 在UML中,棒棒糖表示法用于表示一个类实现了一个接口。...箭头表示法:指示继承依赖 在UML中,箭头表示法用于表示类之间的关系,如继承、实现接口、依赖等。 如果一个类继承了另一个类,我们可以用一条带有空心箭头的直线表示,箭头指向父类。...如果一个类实现了一个接口,我们可以用一条带有空心箭头的虚线表示,箭头指向接口。 如果一个类依赖于另一个类,我们可以用一条带有实心箭头的虚线表示,箭头指向被依赖的类。...如果一个类是另一个类的一部分,我们可以用一条带有空心菱形的直线表示,菱形位于“整体”端,箭头指向“部分”。

1.1K30

UML类图简单介绍

它既用于应用程序的系统分类的一般概念建模,也用于详细建模,将模型转换成编程代码。类图也可用于数据建模。...继承(Inherit) 子类继承父类,子类可以使用父类所有非私有的属性方法。在UML中,继承用条带空心箭头的实线来表示 ? 2....实现(Realization) 实现继承类似,实现类继承接口中的方法,但是方法必须由实现类自己实现。在UML中,实现用一条带空心箭头的虚线表示 ? 如图, 微信qq都实现了短信功能 3....关联(Association) 关联是一种拥有的关系,它使一个类知道另一个类的属性法;如:老师学生,丈夫妻子关联可以是双向的,也可以是单向的。...依赖(Dependency) 依赖指类类之间的联接,依赖关系表示一个类依赖于另一个类的定义。在UML中用一条带箭头的虚线表示。 ? 5.

92020
  • Ceph客户端的对象映射和数据条带

    每个对象都有一个唯一的对象ID位置信息。Ceph客户端通过Ceph存储集群的监视器管理器通信,获取存储集群中对象的位置信息。...然后,客户端使用这些信息存储集群中的OSD(对象存储设备)通信,读取或写入数据。 客户端的对象映射将存储集群中的对象映射到客户端的文件系统上,使得客户端可以像访问本地文件一样操作对象。...例如,客户端可以通过文件路径访问对象,并使用标准的文件操作API(如read、write、open、close等)进行读写操作。客户端的对象映射将这些文件操作转换为对存储集群中对象的读写操作。...计算每个数据条带的校验,以用于数据的完整性校验。...将数据条带写入到分布式的存储集群中。Ceph客户端将数据条带分发给多个监视器对象存储设备,进行并行写入操作。条带的分布复制策略可以通过调整CRUSH算法的参数进行配置。

    32621

    【技术分享】使用电报API免费创建个人通知系统

    电报简介 电报是一个消息传递应用程序,类似于WhatsApp许多其他应用程序。这是一款维护良好的应用程序,由许多功能提供支持,使其比竞争对手更具优势。..._bottest_bot 现在,您将收到一条带令牌的消息。令牌如下所示: 1112223333:ME5E7ZH4ux5AiJqoXgzaoSUSlJ8ji1lM 请妥善保管此令牌,不要与任何人共享。...chat_id 在这种情况下,需要进行初始操作,因此请开始机器人交互。搜索机器人并开始新聊天。 这将向机器人发送一条消息,但为了获得,您需要进行第一次 API 调用!...getUpdates 替换为之前从 BotFather 获取的令牌,但请记住将机器人部分保留在令牌之前的 URL 中。...业务问题,所以我不想弄乱我的收件箱或有一个单独的电子邮件地址。最重要的是,大多数电子邮件 API 都有相当严格的限制, 而电报没有!当然,您可以设置自己的服务器等…但是这个指南将是它的十倍长。

    3.5K60

    磁盘阵列典型问题分析

    现将有典型意义的问题分析如下 1.在服务器往盘阵中写入或读出数据时报错(如I/0 error,读写延缓失败等),或不能写入数据,或写入过程中出错 1) 检查SCSI线及SCSI卡有无松动. 2)判断盘阵型号:如果是SCSI接口类型的盘阵...,第一思路是查看盘阵的主机通道接口有无接错,如果将SCSI线接到了out口,极易出现这种故障现象,这时一定要提醒用户先关闭服务器,再关闭盘阵,稍等片刻,等静电释放完毕后立即将SCSI线换接到in口 3)...如果发现有人为更改过通道频率或自身即显示为80或更低频率,将会导致速率很慢,可尝试将其修改到160MHZ 4)查看参数设置: 如读写策略 在infrotrend盘阵中写策略有两种;write backwrite...类似 5)条带大小的设置 控制器往盘阵中写数据或从中读数据都是以条带为单位进行的,条带大小范围从 (8KB-1MB以promise为例,不同厂家可能有所不能),针对不同应用条带设置不同可以会使用性能有很大区别...典型的应用有两类: a)多媒体或视频点播系统:要求数据I/O次数不能太多,且一次I/O数据量要较大,否则在用户端会出现多次停顿,因此,要求条带比较大,条带大小设置为64K或更大为宜,否则将影响性能 b

    1.5K40

    GlusterFS 分布式文件系统简介

    复合卷 (4) distribute stripe volume 分布式条带卷 Brick server 数量是条带数的倍数,兼具 distribute stripe 卷的特点。...分布式的条带卷,volume 中 brick 所包含的存储服务器数必须是 stripe 的倍数(>=2倍),兼顾分布式条带式的功能。...(6) stripe replica volume 条带复制卷 类似 RAID 10,同时具有条带复制卷的特点。下图是 distribute replica volume 示意图。 ?...(7) distribute stripe replica volume:分布式条带复制卷 三种基本卷的复合卷,通常用于类 Map Reduce 应用。...在容器对接过程中,通过我们需要创建卷、删除卷,以及设定卷的配额等功能,并且后续这些功能也需要 REST API 化,方便通过HTTP请求的方式来操作卷。

    3.8K12

    盘阵典型故障分析及解决方案

    现将有典型意义的问题分析如下 1.在服务器往盘阵中写入或读出数据时报错(如I/0 error,读写延缓失败等),或不能写入数据,或写入过程中出错 1) 检查SCSI线及SCSI卡有无松动. 2)判断盘阵型号:如果是SCSI接口类型的盘阵...,第一思路是查看盘阵的主机通道接口有无接错,如果将SCSI线接到了out口,极易出现这种故障现象,这时一定要提醒用户先关闭服务器,再关闭盘阵,稍等片刻,等静电释放完毕后立即将SCSI线换接到in口 3)...如果发现有人为更改过通道频率或自身即显示为80或更低频率,将会导致速率很慢,可尝试将其修改到160MHZ 4)查看参数设置: 如读写策略 在infrotrend盘阵中写策略有两种;write backwrite...类似 5)条带大小的设置 控制器往盘阵中写数据或从中读数据都是以条带为单位进行的,条带大小范围从 (8KB-1MB以promise为例,不同厂家可能有所不能),针对不同应用条带设置不同可以会使用性能有很大区别...典型的应用有两类: a)多媒体或视频点播系统:要求数据I/O次数不能太多,且一次I/O数据量要较大,否则在用户端会出现多次停顿,因此,要求条带比较大,条带大小设置为64K或更大为宜,否则将影响性能 b

    1.5K40

    【大数据】RAID介绍

    磁盘条带化虽然 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。 RAID 的初衷是为大型服务器提供高端的存储功能冗余的数据安全。...而且,随着处理器、内存、计算机接口等技术的不断发展, RAID 不断地发展革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。...(2) 高性能 RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。...而通过条带技术,可获得数倍顺序访问的性能提升。   数据条带技术的分块大小选择非常关键。...其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口

    2.3K20

    有关RAID我们需要了解的一些知识

    磁盘条带化虽然 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。   RAID 的初衷是为大型服务器提供高端的存储功能冗余的数据安全。...而且,随着处理器、内存、计算机接口等技术的不断发展, RAID 不断地发展革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。...(2) 高性能    RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。...而通过条带技术,可获得数倍顺序访问的性能提升。   数据条带技术的分块大小选择非常关键。...其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口

    1.8K20

    图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100……

    磁盘条带化虽然 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。   RAID 的初衷是为大型服务器提供高端的存储功能冗余的数据安全。...而且,随着处理器、内存、计算机接口等技术的不断发展, RAID 不断地发展革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。...(2) 高性能    RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。...而通过条带技术,可获得数倍顺序访问的性能提升。   数据条带技术的分块大小选择非常关键。...其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口

    5.7K21

    不同RAID级别各自优缺点详解

    RAID 1+0 RAID 1+0也称为RAID 10,它使用磁盘镜像条带化的组合。数据通常先镜像,然后条带化。先条带化再镜像也可以完成相同的任务,但它的容错性不如前者。...如果在一个条带组中丢失驱动器,则必须从另一个条带组中访问数据,因为条带组没有奇偶性。RAID 1+0至少需要4个物理磁盘。 RAID 5 RAID 5使用奇偶校验磁盘条带化。...这些数据在RAID组中的所有磁盘上都有条带,并带有在磁盘故障时重建数据所需的奇偶性信息。 RAID 5是最常见的RAID方法,因为它在性能可用性之间取得了良好的平衡。...了解:  RAID 3 RAID 3使用奇偶校验磁盘将RAID控制器生成的奇偶校验信息存储在实际数据磁盘分开的磁盘上,而不是像RAID 5中那样用数据对磁盘进行分段。...当有大量数据请求时,这种RAID类型的性能很差,比如在数据库这样的应用程序中。RAID 3在需要长时间连续数据传输的应用程序(如视频服务器)中表现良好。RAID 3至少需要三个物理磁盘。

    1.2K30

    视频编码(3):H.266 编码性能比 H.265 再提升 49% 的关键丨音视频基础

    相对于之前的 H.265/HEVC H.264/AVC 视频编码标准,VVC 对 8K 超高清、屏幕、高动态 360 度全景视频等新的视频类型以及自适应带宽和分辨率的流媒体实时通信等应用有了更好的支持...3.2、系统传输接口 视频编码标准的系统传输接口通常也叫做高层语法(High-Level Syntax, HLS),是编解码器中压缩工具视频应用传输系统之间的联系纽带。... H.264 H.265 相比,H.266 的 HLS 中的新的或有显著改进的设计主要包括以下这些方面: 矩形条带(Slice)子图像(Subpicture) 自适应图像分辨率更新 自适应参数集...概念上子图像 H.265 中的运动受限的瓦片集(Motion-Constrained Tile Set, MCTS)相同,但是在设计上做了改进以提高编码压缩效率应用系统友好性。...360 度视频传统视频应用的最关键区别之一是用户在任何瞬间都只会看到整个 360 度球面的一小部分,这个传输方案就是利用这个关键点进行优化,目标是让用户看到的部分具有高画质,而看不到的部分的画质可以比较低

    2.6K20

    RAID技术全解图解-RAID0、RAID1、RAID5、RAID100

    磁盘条带化虽然 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。 RAID 的初衷是为大型服务器提供高端的存储功能冗余的数据安全。...而且,随着处理器、内存、计算机接口等技术的不断发展,RAID 不断地发展革新,在计算机存储领域得到广泛的应用,从高端系统逐渐延伸到普通的中低端系统。...高性能 RAID 的高性能受益于数据条带华化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有限,容易成为系统性能瓶颈。...而通过条带技术,可获得数倍访问的性能提升。 数据条带技术的分块大小选择非常关键。...其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口

    5.7K20

    关于 Virtual SANVSAN 的常见问题解答

    这样,就会在群集中创建 2 个数据对象 1 个见证。“条带宽度”性能有关(即,不在缓存中时的读取性能以及取消写入暂存)。设置为 2 或更高的值,会使数据在多个磁盘之间进行条带化。...答:VSAN 许可证是在群集级别应用的。打开 Web Client,单击已启用 VSAN 的群集,然后依次单击“Manage(管理)”选项卡“Settings(设置)”。...如果对每个主机使用多个 VMkernel 接口,则每个接口都必须属于不同的子网! • 问:VSAN 支持跨越多个地理位置吗? 答:当前版本的 VSAN 不支持“城域”群集。...这样,就会在群集中创建 2 个数据对象 1 个见证。“条带宽度”性能有关(即,不在缓存中时的读取性能以及取消写入暂存)。设置为 2 或更高的值,会使数据在多个磁盘之间进行条带化。...答:VSAN 许可证是在群集级别应用的。打开 Web Client,单击已启用 VSAN 的群集,然后依次单击“Manage(管理)”选项卡“Settings(设置)”。

    2.3K20

    有关RAID我们需要了解的一些知识

    磁盘条带化虽然 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。   RAID 的初衷是为大型服务器提供高端的存储功能冗余的数据安全。...而且,随着处理器、内存、计算机接口等技术的不断发展, RAID 不断地发展革新,在计算机存储领域得到了广泛的应用,从高端系统逐渐延伸到普通的中低端系统。...(2) 高性能    RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。...而通过条带技术,可获得数倍顺序访问的性能提升。   数据条带技术的分块大小选择非常关键。...其中,端口是指 RAID 卡支持的磁盘接口类型,如 IDE/ATA 、 SCSI 、 SATA 、 SAS 、 FC 等接口

    1.6K20

    RAID0、RAID1、RAID5、RAID6、RAID10、RAID50的异同应用

    RAID0、RAID1、RAID5、RAID6、RAID10、RAID50的异同应用 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列...10(镜像条带存储) 6、RAID 50 ---- 1、RAID 0(不含校验冗余的条带存储) 1、RAID 0(不含校验冗余的条带存储) RAID 0 又称为Stripe(条带化),它在所有...工作原理: 如下图1-1所示,如果有一个文件需要写入RAID 0 磁盘阵列,则文件会被分隔为多个部分,D1D2会被分别同步存入磁盘1磁盘2,其他部分以此类推,读取该文件时,将同时从磁盘1磁盘2中读取数据...工作原理: 如下图1-4所示,RAID 5相似,RAID 6根据条带化的数据生成校验信息,条带化数据和校验数据一起分散存储到RAID组的各个磁盘上。...---- 5、RAID 10(镜像条带存储) RAID 10 不是独创的一种RAID级别,它由RAID 1 RAID 0 两种阵列形式组合而成,RAID 10继承了RAID 0 的快速高效,同时也继承了

    13.1K30

    图元装配光栅化

    例如:假设三个 三角形条带(GL_TRIANGLE_STRIP)分别有元素索引(0,1,2,3)(8,9,10,11),如果想用图元重启来一次调用绘制两个条带,索引类型为GL_UNSIGNED_BYTE...性能提示 应用程序应该用 尽可能大的图元尺寸 调用 glDrawElements glDrawElementsInstanced。...为了连接不同网格而添加的 元素索引(或者退化三角形)数量取决每个网格是三角扇形还是三角形条带以及每个条带中定义的索引数量。...连接不同的三角形条带时,我们需要检查两个相互连接的条带的最后一个三角形第一个三角形的顺序。...添加的新索引数量 生成退化三角形的数量 取决于 第一个三角形条带的 顶点数量。必须保留下一个连接条带的弯曲顺序。

    3K20

    软考高级架构师:磁盘阵列 Raid 概念例题

    50% RAID 10 (1+0) 先镜像后条带,结合了RAID 0RAID 1的特点。需要至少4个磁盘。 高速度数据保护。适合数据库、关键应用。...(N-1)/N RAID 5 块级条带,每个磁盘交替存储数据奇偶校验信息。需要至少3个磁盘。 好的速度和数据保护平衡。适合文件应用服务器。...AC RAID 10是什么? A. 先镜像后条带 B. 先条带后镜像 C. 只使用奇偶校验 D. AB都不对 RAID 5为什么能平衡速度和数据保护? A....先镜像后条带 RAID 10通过先镜像后条带的方式,结合了RAID 0RAID 1的优点,提供了高速度数据保护。 B....RAID 10 RAID 10结合了RAID 0的速度RAID 1的数据保护,适合对速度安全性要求都很高的应用。 A.

    8600

    UML类图讲解

    来表示,就是继承关系例如:自行车是车,猫是动物泛化关系用一条带空心箭头的直接表示,如下图(A继承自B)图片suv汽车之间是泛化关系图片1.2 实现关系(realize)实现关系用一条带空心的箭头的虚线表示例如...:车为一个抽象概念,在现实中无法直接用来定义对象,只有指明具体的子类(汽车还是自行车),才可以用来定义对象abstract表示抽象类,interface表示接口图片注:最终代码中,实现关系表现为继承抽象类...;或者实现接口1.3 聚合关系(aggregation)聚合关系用一条带空心菱形箭头的直线表示例如下图表示A聚合到B上,或者说是B由A组成图片聚合关系用于表示实体对象之间的关系,表示整体由部分构成的语音...;例如一个部门由多个员工组成;组合关系不同的事,整体部分不是强依赖的,即使整体不存在了,部分仍然存在,例如,部门撤销了,人员不会消失,他们依然存在1.4 组合关系(composition)组合关系用一条带实心的菱形直线表示例如下图表示...,所以,关联关系是一种强关联的关系比如:乘车人和车票之间就是一种关联关系;学生学校就是一种关联关系关联关系默认不强调方向,标识对象间互相知道;如果特别强调方向,如下图,A知道B,但B不知道A图片注:在代码中的体现

    52640

    【数据库08】数据库物理存储系统的选型管理

    (LSM树及其变种、位图索引、空间索引、动态散列等索引结构的拓展,高级应用开发中的性能调整,应用程序移植标准化,数据库区块链等…) 文章简介:这篇文章将介绍数据库的物理存储系统,从底层的存储介质特性开始...非易失性存储器标准(Non-Volatile Memory Express,NVMe)接口是为了更好地支持SSD而开发的逻辑接口标准,通常PCIe接口一起使用(PCIe接口提供计算机系统内部的高速数据传输...读写头刮掉的介质会在空气中飘浮并且散落到其他盘面读写头之间,引起更多的损坏。 磁盘控制器是磁盘计算机系统之间的接口。他会根据高层次的读写命令来控制磁盘读写的物理操作。校验用于检验读写的准确性。...对于一个采用条带内部通过校验数据进行数据保护的系统,当应用程序正在更新条带内部数据的时候,如果系统突然断电,条带数据无法正常更新完成,那么此时就会出现条带中的数据部分更新完成。...在这种情况下,当系统重启之后,条带中的数据是不完整的,校验数据条带中的有效数据无法匹配上,条带处于数据不一致的情况。

    1.1K20
    领券