不常用的浏览器 API —— Payment Request

367 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第27天,点击查看活动详情

这一节来看一下 Payment Request 相关 API,这个 API 是支付请求,从名字可以猜测出它是做什么的,也能想到这个 API 其实没什么用,尤其是在国内根本就不需要,因此本文更多的是了解一下这个是做什么的。

PaymentRequest 是付款请求 API 的主要访问接口,允许 Web 内容和应用程序,代表站点运营商或应用程序发布者,处理终端用户的付款。它的目的是标准化浏览器支付流程,大概完成下面几个目标:

  • 使用浏览器作为商家、用户和支付处理机构的中间平台
  • 可能标准化支付通信流程
  • 支持不同的支付方式
  • 适用于全平台

可以类比一下 Apple Pay 之类的产品,当我们在设备上有支付需求时,系统会为我们调起支付能力,我们直接可以点击一键支付,不需要每次重新添加支付信息。PaymentRequest 就是浏览器中的这类产品,因为我们在浏览网站时候也是存在各种支付需求的,当我们需要时,如果已经在浏览器中有相关信息,这是通过 PaymentRequest API 就可以直接调起浏览器支付能力,用户可以一键完成支付过程。

调用支付能力很简单,创建一个 PaymentRequest 对象调用 show 方法即可,之后浏览器就会显示原生的支付弹窗:

new PaymentRequest().show()

这里会返回一个 Promise,用户支付的结果可以通过 resolve 回调来获取。

支付的参数信息都可以在 PaymentRequest 构造函数中传入,这里可以定义 methodData、details、options 等信息。

PaymentRequest 在 PWA 中也是一种重要的提升用户体验的手段,当然这一切在结合 Chrome OS 之后可以发挥更好的体验效果,国内用户访问不到 google,也无法使用 chromebook,这部分 API 权当不存在就好了。