我正在为支付实现新的 Balanced API,并开始考虑将其放在我们的移动(本机)应用程序上。
我看到他们有一个 javascript 库,用于将信用卡信息直接发送到他们的服务器。我显然不希望支付信息通过我们的服务器 (PCI),并且我不想在应用程序中包含我的 API 密钥/秘密。
那么在我们的移动应用程序上处理信用卡信息的最佳方式是什么?
我正在为支付实现新的 Balanced API,并开始考虑将其放在我们的移动(本机)应用程序上。
我看到他们有一个 javascript 库,用于将信用卡信息直接发送到他们的服务器。我显然不希望支付信息通过我们的服务器 (PCI),并且我不想在应用程序中包含我的 API 密钥/秘密。
那么在我们的移动应用程序上处理信用卡信息的最佳方式是什么?
更新
由于您正在为智能手机编写代码,因此您应该能够直接对 Balanced 进行 RESTful API 调用以对卡进行标记,而无需使用 balance.js。
卡和银行账户端点不需要身份验证来标记这些资源,因此您无需担心在应用程序中包含任何 API 密钥。该文档解释了如何标记卡,但让我更详细地解释它:
TL;博士
直接从您的移动应用程序向与您的 Marketplace 关联的card_uri
or进行 POST bank_account_uri
,它将返回包含标记化资源的 URI 的响应。
例子
如果您的 Marketplace 的 URI 是,/v1/marketplaces/M123-456-7890
那么流程将如下所示:
在客户端
您通过的有效负载应如下所示:
{
"card_number": "5105105105105100",
"expiration_month": "01",
"expiration_year": "2020",
"security_code": "123"
}
然后应该像这样提交
POST /v1/marketplaces/M123-456-7890/cards
响应将类似于:
{
"brand": "visa",
"name": null,
"expiration_year": 2020,
"uri": "/v1/marketplaces/TEST-MP991-204-5261/cards/CCfc1596189e0911e18ba9024f5cb9b783",
"expiration_month": 12,
"state": "new",
"last_four": 5100,
"address": null
}
然后客户端只需要将uri
响应返回到您的服务器,在服务器上您可以将卡与用户的帐户相关联。
在服务器上
要将卡的 URI 与现有帐户相关联,您可以使用PUT
作为参数传递的卡的 URI 向帐户的 URI 发出请求,称为card_uri
. 如果您要创建一个新帐户,请使用用户的电子邮件地址访问POST
市场。accounts_uri
您要注意的是,您不要在设备上记录用户card_number
或security_code
任何调试日志,因为这会将设备带入 PCI 范围,并且如果他们的手机受到损害,可能会很糟糕。