如何使用Stripe(stripe.js)和react-native

时间:2015-12-25 23:19:53

标签: react-native stripe-payments

我正在尝试找到一种使用带有反应原生的条带的好方法。优选地,不涉及将信用卡详细信息发送到我自己的后端或将我的条带私钥存储在应用程序中。欢迎任何想法!感谢

4 个答案:

答案 0 :(得分:15)

我尚未亲自在React Native中实现此功能。在我正在研究的应用程序中,这将在接下来的几天内移植,但这是我们如何在当前的应用程序中执行它而不依赖于第三方库以及我们将如何在React Native中实现。这显然只是一个可以在任何可以进行HTTP调用的地方使用的概念。

使用'授权'对https://api.stripe.com/v1/tokens发出POST电话。带有值Bearer {PUBLISHABLE_AUTH_TOKEN}的标头。身体(x-www-form-urlencoded)放置:

card[name]={NAME_ON_CARD}&card[number]={CARD_NUMBER}&card[exp_month]={CARD_EXP_MONTH}&card[exp_year]={CARD_EXP_YEAR}&card[cvc]={CARD_CVC}

响应将是一个JSON对象,其中包含(除其他外)一个id字段。此ID字段是您在进行交易时将引用该卡的内容,因此该ID需要发送到您的服务器并存储。可以存储此ID而无需担心PCI合规性。

更多信息:https://stripe.com/docs/api#tokens

答案 1 :(得分:7)

我建议:https://github.com/tipsi/tipsi-stripe

我能够成功连接React Native和Stripe来创建客户并添加卡并将令牌保存到我的后端。

答案 2 :(得分:0)

我在使用现有库时遇到了问题,所以我写了一个更好的库。 react-native-stripe允许您收集信用卡信息,使用Stripe对其进行验证,并将其交换为Stripe令牌,所有这些都使用本机代码。目前仅限iOS。

答案 3 :(得分:0)

我仍然不确定,但是我们想要实现的目标很简单。

通过react,我们能够通过从前端调用strip获取卡信息来实现这一目标。但是,React Native没有自己的代码。

所以我们需要像这样从我们自己那里获得所需的一切

curl https://api.stripe.com/v1/tokens \
  -u sk_test_IjzBJWterND0tgdSyEIhDmgS00ODHLjw1a: \
  -d "card[number]"=4242424242424242 \
  -d "card[exp_month]"=7 \
  -d "card[exp_year]"=2021 \
  -d "card[cvc]"=314

您将得到

% curl https://api.stripe.com/v1/tokens \
  -u sk_test_IjzBJWterND0tgdSyEIhDmgS00ODHLjw1a: \
  -d "card[number]"=4242424242424242 \
  -d "card[exp_month]"=7 \
  -d "card[exp_year]"=2021 \
  -d "card[cvc]"=314
{
  "id": "tok_1H2Vt9AxSyQJWoao8qhjHDuh",
  "object": "token",
  "card": {
    "id": "card_1H2Vt9AxSyQJWoao26em4Dps",
    "object": "card",
    "address_city": null,
    "address_country": null,
    "address_line1": null,
    "address_line1_check": null,
    "address_line2": null,
    "address_state": null,
    "address_zip": null,
    "address_zip_check": null,
    "brand": "Visa",
    "country": "US",
    "cvc_check": "unchecked",
    "dynamic_last4": null,
    "exp_month": 7,
    "exp_year": 2021,
    "fingerprint": "IS61beTzZemIdd8p",
    "funding": "credit",
    "last4": "4242",
    "metadata": {
    },
    "name": null,
    "tokenization_method": null
  },
  "client_ip": "153.218.66.247",
  "created": 1594186331,
  "livemode": false,
  "type": "card",
  "used": false
}

您可以照常使用卡上的tok_来执行后端收费。