如何为单个客户ID添加多张卡并使用条带直接转账?

时间:2016-11-23 10:05:27

标签: php stripe-payments

条纹支付网关可以吗?

我们将使用条带付款,首先我创建令牌。

$result = Stripe_Token::create(
                    array(
                        "card" => array(
                            "name" => $user['name'],
                            "number" => base64decrypt($user['card_number']),
                            "exp_month" => $user['month'],
                            "exp_year" => $user['year'],
                            "cvc" => base64decrypt($user['cvc_number'])
                        )
                    )
                );

使用令牌创建客户存储卡后。

 $customer = \Stripe\Customer::create(array(
                                "card" => $token,
                                "description" => "New customer",
                                "email" => $users->email
                                    )
                    );

并在创建充电后。

$charge = \Stripe\Charge::create(
                 array('card' => $token->token,
                                'amount' => $token->amount * 100,
                                'currency' => 'usd',
                                )
            );

但我无法在单个客户中找到保存多张卡片。 请帮帮我。

1 个答案:

答案 0 :(得分:4)

首先,您不应该在生产中创建令牌服务器端。要获得PCI SAQ A的资格,您必须使用CheckoutStripe.js创建卡片令牌客户端。

在服务器上收到令牌后,您可以通过几种不同的方式使用它:

  • 通过在"tok_..."参数中传递令牌ID(source),您可以直接使用它create a charge,而无需使用客户对象。在这种情况下,卡信息将丢失"并且您将需要再次收集信息并创建一个新令牌,以便将来再次为此卡充值。

  • 您可以将其用于create a new customer

  • 您可以将其用于add a card to an existing customer

creating charges包含客户对象时,您需要在"cus_..."参数中传递客户的ID(customer)。如果您未传递source参数,则将使用客户的默认卡。如果您想要为非默认卡充电,那么除了customer参数外,您还需要在{{{{{}}中传递该卡的ID("card_...") 1}}参数。

比照。 this StackOverflow answer