# Shopify 受保护视频

使用 Shopify 签名的 app proxy，并在服务器端核实购买记录后打开受保护视频页面。

播放授权的流程

您的后端决定谁可以观看。DRM-X 提供播放授权，播放器使用该授权请求 DRM 许可证。

- 01**观看用户**

登录您的服务并请求播放视频。

- 02**您的后端**

检查用户的购买记录、订阅状态或其他观看权限。

- 03**DRM-X**

应用所选播放规则，返回播放配置和授权信息。

- 04**播放器**

使用返回的授权信息，请求播放所需的 DRM 许可证。

您的后端判断用户是否有权观看，DRM-X 执行签名授权中的播放策略。加密媒体与 DRM 许可证通过各自的服务传送给播放器。

## 配置自定义应用[#](#setup)



配置 Shopify app proxy，将店铺中的路径转发到 HTTPS Node 集成服务的 /shopify/proxy。应用密钥、myshopify.com 店铺名称和 Admin API access token 只能保存在服务器配置中。根据实际店铺需求申请读取客户和订单所需的权限。



创建 provider=shopify 的集成资源，并将 externalResource 设为 Shopify 数字产品 ID。Content ID 和许可证策略由服务器控制。在店铺页面中，通过资源内部名称将客户引导到 proxy 路径。



[下载第三方平台集成源码](https://drm-x6-cdn.1aicloud.com/drmx-frameworks-1.3.0-preview.2-f4ee10f26cdf.zip)





## 验证客户与购买记录[#](#access)



集成服务验证 app proxy 的 HMAC、时间戳、店铺和签名的 logged_in_customer_id。匿名请求会被拒绝。随后通过 Admin GraphQL API 查询相应客户的订单，要求存在已付款、未取消且所映射产品仍有有效数量的订单。



proxy 返回一个包含一次性票据的链接，票据在 30 秒后失效。打开链接后，播放器在集成服务自己的来源域名上显示，会话 API 因而可以保持同源。每次新播放请求都会重新核实购买记录。





## 针对具体店铺的验证[#](#limits)



此预览版本使用签名 app proxy 提供的客户身份。新客户账号扩展、订阅续费、组合产品和第三方会员应用需要单独适配；不要认为店铺 Liquid 中的 customer 变量可以直接授权播放。



订单查询最多检查 20 页，每页 50 个订单，并检查每个订单的前 100 个商品项。若应用未获得全部订单访问权限，Shopify 可能限制历史订单查询。超出覆盖范围的请求会被拒绝；大型店铺或长期购买权限应使用经过验证的授权记录系统。



已提供本地签名和授权测试。正式发布前，仍需在开发店铺中验证登录、已付款和退款订单、取消订单、历史购买、篡改产品 ID，以及真实 DRM 播放。



[Shopify app proxy 身份验证](https://shopify.dev/docs/apps/build/online-store/app-proxies/authenticate-app-proxies)

<!-- Canonical: https://docs.drm-x.com/zh-Hans/integrations/shopify -->
<!-- Language: zh-Hans -->
