在移动应用上使用Balanced API的最佳做法

时间:2012-05-18 17:18:40

标签: mobile payment-gateway payment balanced-payments

我正在为付款实施新的Balanced API,并开始考虑将其放在我们的移动(本机)应用上。

我看到他们有a javascript library将信用卡信息直接发送到他们的服务器。我显然不希望付款信息通过我们的服务器(PCI),我不想在应用程序中包含我的API密钥/秘密。

那么在我们的移动应用上处理信用卡信息的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

<强>更新


由于您正在编写智能手机,因此您应该能够直接向Balanced发出RESTful API调用,以便在不使用balanced.js的情况下对卡进行标记。

卡和银行帐户端点不需要身份验证来标记这些资源,因此您无需担心在应用中包含任何API密钥。该文档解释了如何tokenize the card,但让我更详细地解释一下:

<强> TL; DR

直接从您的移动应用程序发布POST到与您的市场相关联的card_uribank_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与现有帐户相关联,您可以对帐户的URI发出PUT请求,并将卡的URI作为名为card_uri的参数传递。如果您要使用该用户的电子邮件地址POST创建一个新帐户accounts_uri到市场card_number

您要小心的是,您不会在设备的任何调试日志中记录用户的security_code或{{1}},因为这会将设备带入PCI示波器并且可能不好如果他们的手机被盗了。