Apple Pay与Rails进行网络集成-第1部分

Wei Xiao
7 min readNov 27, 2019

--

Apple Pay 是一种在商店,应用程序和Web上进行购买的简单安全的方法。用户现在只需在iPhone上触摸即可完成以上所有操作。

在本系列博客中,我们将指导您将Apple Pay集成到您的Web应用程序中,并开始通过它接受付款。

本系列包括以下博客文章:

  1. 注册商家ID,域并生成证书
  2. 创建商家会话,显示付款方式并授权付款
  3. 解密Apple Pay JSON响应

让我们从第一个开始。

注册商户ID,域并生成证书。

内容:

  1. 系统配置
  2. 使用Apple Pay的准则
  3. 注册商家ID
  4. 生成付款处理证书
  5. 注册并验证网站域名
  6. 生成商家身份证书

1系统配置

  • 机器:macOS Sierra 10.12.5
  • 浏览器:Safari 10.1.1
  • 手机:Apple iPhone 6

2使用Apple Pay的准则

Apple为希望将Apple Pay纳入其网站的企业提供了一套准则。作为商人,您必须关注所有这些人,才有资格使用Apple Pay。

3注册商家ID

作为商人,您将需要一个Apple开发人员帐户,您可以在其开发人员控制台上进行设置。

登录您的开发者帐户,并按照以下步骤为您的企业注册商家标识符:

  1. 在信息中心上选择证书,标识符和配置文件
  1. 选择标识符>商家ID
  2. 输入描述标识符,然后单击“继续”。

4生成付款处理证书

  1. 从仪表板中选择 证书,标识符和配置文件
  2. 选择标识符>商家ID
  3. 选择您在上一步中创建的商户ID,然后点击“编辑”。
  4. 在“ 付款处理证书”部分中,单击“创建证书”。
  5. 选择是否只在中国处理您的付款,然后单击“继续”。
  1. 现在,从您的付款提供商处获取CSR文件,或按照以下步骤创建CSR文件:
  2. 在Mac上的Applications文件夹中,打开实用程序并启动Keychain Access
  3. 在“钥匙串访问”下拉菜单中,选择“ 钥匙串访问”>“证书助手”>“从证书颁发机构请求证书”
  1. 在“证书信息”窗口中,输入以下内容:
  2. 电子邮件地址
  3. 密钥的通用名称,例如JD_TD_APPLE_PAY_PAYMENT_DEV_KEY
  4. 将CA电子邮件地址留空
  5. 在“ 请求为”组中,选择“ 保存到磁盘”选项。
  6. 选择“ 让我指定密钥对信息”
  1. 单击“继续”,然后将文件保存在所需位置。
  2. 将密钥对信息设置为以下内容:
  3. 算法:ECC
  4. 密钥大小:256位
  1. 点击“继续”。您的证书已生成。
  2. 在“ 生成证书”下,单击“选择文件”,选择您的CSR文件,然后单击“继续”。
  1. 单击“下载”下载证书,然后单击“完成”。证书将作为apple_pay.cer下载。

4.1将证书转换为pem文件

  1. 双击“ apple_pay.cer”文件以安装在Keychain Access中。
  2. 在“钥匙串访问”中找到证书。右键单击它,然后选择“ 导出…”
  3. 选择保存“ .p12”文件的位置,然后单击“继续”。
  4. 当提示您设置密码时,请勿设置任何密码,然后单击“继续”。
  5. 授予访问权限,然后单击“继续”。您现在将拥有一个带有证书及其密钥的“ .p12”文件。
  6. 现在,打开终端并运行openssl pkcs12 -in path/to/p12/file -out Certificate.key.pem -nocerts -nodes。当提示您输入导入密码时,请将其保留为空白。这将生成一个Certificate.key.pem文件。

注意:请仔细检查输出文件的名称,以免覆盖现有证书。

5注册并验证网站域名

要在Apple上成功生成商家会话,必须注册运行应用程序的域。可以通过以下步骤完成:

  1. 从仪表板中选择证书,标识符和配置文件
  2. 选择标识符>商家ID
  3. 从列表中选择商户ID,然后单击“编辑”。
  4. 在“ Apple Pay在Web上>商家域”部分中,单击“添加域”按钮。
  5. 输入您的标准域名。在开发应用程序时,可以使用 ngrok 获取localhost的公共域。一个示例ngrok域看起来像abcd1234.ngrok.io
  1. 单击“继续”后,将为您提供文件下载。
  1. 单击“下载”后,将在您的系统上下载一个名为apple-developer-merchantid-domain-association的文件。Apple需要您将此文件放在服务器上的给定位置(可公开访问)以验证注册的域。该位置类似于 https://abcd1234.ngrok.io/.well-known/apple-developer-merchantid-domain-association。使用Ruby on Rails,您可以进行以下配置,以使Apple可以访问此文件:
  2. 将下载的文件放在public / apple-developer-merchantid-domain-association路径下。
  3. 添加代码:
  • # config/routes.rb match '/.well-known/apple-developer-merchantid-domain-association', to: 'apple_pay_merchants#domain_association'
  • # app/controllers/apple_pay_merchants_controller.rb class ApplePayMerchantsController < ApplicationController layout false def domain_association render file: 'public/apple-developer-merchantid-domain-association' end end
  1. 运行rails server
  2. 点击“验证”按钮。Apple将对验证URL进行ping操作,如果验证成功,该站点将返回iOS“商家ID设置”页面,“状态”将设置为“ 已验证”

6生成商户身份证书

要与Apple建立会话,需要商人身份证书。

  1. 选择 证书,标识符和配置文件
  2. 选择标识符>商家ID
  3. 从列表中选择商户ID,然后单击“编辑”。
  4. 在“ Apple Pay on Web”>“商家身份证书”部分中,单击“创建证书”按钮。
  5. 请按照以下步骤创建CSR文件:
  • 在Mac上的Applications文件夹中,打开实用程序并启动Keychain Access
  • 在“钥匙串访问”下拉菜单中,选择“ 钥匙串访问”>“证书助手”>“从证书颁发机构请求证书”
  • 在“证书信息”窗口中,输入以下内容:
  • 电子邮件地址
  • 密钥的通用名称,例如JD_TODO_APPLE_PAY_MERCHANT_DEV_KEY
  • 将CA电子邮件地址留空
  • 在“ 请求为”组中,选择“ 保存到磁盘”选项。
  • 不要选择“ 让我指定密钥对信息”
  • 单击“继续”,然后将文件保存在所需位置。
  1. 在上载CSR文件中,单击“选择文件”,然后上载在上一步中生成的CSR文件。点击“继续
  2. 下载生成的商户身份证书。证书将被命名为商人_id.cer
  3. 请按照上面的指南4.1将此“ .cer”文件转换为“ .pem”文件。

现在,您的商家帐户即可用于通过Apple Pay付款。在下一篇文章中,我们将做更多的编码,并向客户展示付款方式。

--

--

No responses yet