如何向用户添加卡并使用Stripe充电?

时间:2015-12-12 01:24:43

标签: javascript php stripe-payments credit-card

我有一个页面,用户输入一个cc并收取费用。

我使用js

创建一个卡片令牌
Stripe.card.createToken(ccData, function stripeResponseHandler(status, response) { 
    var token = response.id;

    // add the cc info to the user using
    // charge the cc for an amount
});

使用php

添加cc I' m
$stripeResp = Stripe_Customer::retrieve($stripeUserId);
$stripeResp->sources->create(['source' => $cardToken]);

使用php收取cc我的费用

$stripeCharge = Stripe_Charge::create([
    'source'      => $token,
    'amount'      => $amount
]);

完成所有这些我得到You cannot use a Stripe token more than once

任何想法如何将cc保存到此用户$stripeUserId并对其收费。

PHP很受欢迎,但是js也很棒。

1 个答案:

答案 0 :(得分:0)

https://stripe.com/docs/tutorials/charges

  

保存信用卡详细信息以供日后使用

     

条纹标记只能使用一次,但这并不意味着必须使用   请求每位付款的客户卡详细信息。条纹   提供了一个Customer对象类型,可以很容易地保存它   其他信息供以后使用。

     

不要立即为卡充电,而是创建一个新客户,   在此过程中将令牌保存在客户上。这会让你   在未来的任何时候向客户收取费用:

(以多种语言示例)。 PHP版本:

// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("yourkey");

// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];

// Create a Customer
$customer = \Stripe\Customer::create(array(
  "source" => $token,
  "description" => "Example customer")
);

// Charge the Customer instead of the card
\Stripe\Charge::create(array(
  "amount" => 1000, // amount in cents, again
  "currency" => "usd",
  "customer" => $customer->id)
);

// YOUR CODE: Save the customer ID and other info in a database for later!

// YOUR CODE: When it's time to charge the customer again, retrieve the customer ID!

\Stripe\Charge::create(array(
  "amount"   => 1500, // $15.00 this time
  "currency" => "usd",
  "customer" => $customerId // Previously stored, then retrieved
  ));
  

使用存储的付款方式在Stripe中创建客户后,即可   可以通过客户在任何时间点向该客户收费   收费请求中的ID而不是卡表示。肯定   将客户ID存储在您身边供以后使用。

https://stripe.com/docs/api#create_charge-customer

的更多信息

条纹有很好的文档,请阅读!