编程语言
首页 > 编程语言> > php-如何为单个客户ID添加多张卡并使用Stripe直接转帐?

php-如何为单个客户ID添加多张卡并使用Stripe直接转帐?

作者:互联网

可以在条纹支付网关吗?

我们将使用条纹进行付款,首先,我正在创建令牌.

$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',
                                )
            );

但我找不到在单个客户中保存多张卡.
请帮我.

解决方法:

首先,永远不要在生产环境中在服务器端创建令牌.为了有资格使用PCI SAQ A,必须使用CheckoutStripe.js在客户端创建卡令牌.

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

>您可以通过在source参数中传递令牌ID(“ tok _…”),将其直接用于create a charge,而无需使用任何客户对象.在这种情况下,卡信息将“丢失”,您将需要再次收集信息并创建一个新令牌以在将来再次对该卡收费.
>您可以将其用于create a new customer.
>您可以将其用于add a card to an existing customer.

creating charges与客户对象一起使用时,您需要在客户参数中传递客户的ID(“ cus _…”).如果您没有传递source参数,那么将使用客户的默认卡.如果您要为非默认卡收费,​​则除了客户参数外,还需要在源参数中传递卡的ID(“ card _…”).

cf. this StackOverflow answer.

标签:stripe-payments,php
来源: https://codeday.me/bug/20191026/1936935.html