为什么我要在条带充电之前创建客户对象?

pkk*_*pkk 4 php stripe-payments

嗨,我已经看到条纹支付的代码如下.首先创建一个客户对象

$customer = \Stripe\Customer::create(array(
          "card" => $token,
          "description" => "Product Purchase for Book",
          "email" => "someone@example.com"
 ));
Run Code Online (Sandbox Code Playgroud)

然后使用该客户对象进行充电

  \Stripe\Charge::create(array(
         "amount" => $amount, # amount in cents, again
         "currency" => 'usd',
         "customer" => $customer->id)
   );
Run Code Online (Sandbox Code Playgroud)

但下面是可用于直接向用户收费而无需创建任何客户对象的代码.

\Stripe\Charge::create(array(
       "amount" => 3000,
       "currency" => "eur",
       "card" => $_POST['stripeToken'],
       "description" => $_POST['email'],
       "metadata" => array("order_id" => "6735", "userid" => '1111')
));
Run Code Online (Sandbox Code Playgroud)

那么请你在下面解释一下

  1. 哪一个更好?
  2. 创建客户对象有什么好处?
  3. 可以使用商店使用该客户对象随时向该用户收取定期付款吗?

提前致谢

bra*_*ipt 6

首先创建客户对象有几个好处:

  1. 您可以向同一个用户收取多个项目,从而为您和客户提供结算历史记录.这对您作为商店所有者(例如向重复客户提供交易)以及对客户有价值以快速提取他们的购买历史非常有价值.

  2. 预防诈骗

  3. 趋势和分析

  4. 正如您已经说过的那样,订阅

脚注:我个人维护自己的用户群,并在事务发生时更新Stripe客户对象和我的用户数据.这使我可以使用自己的自定义数据扩展Stripe客户,并运行复杂的分析来发现趋势.

  • 不,不 - **绝对**使用计划.只需通过在第一笔交易(单一或订阅)上创建客户对象,就可以更轻松地吸引同一客户并将其订阅到计划中.如果您没有创建客户,那么您必须以其他方式将所有交易连接在一起.为什么重新发明轮子? (2认同)
  • 不,令牌是一次性生成的安全令牌,以确保验证事务.强烈建议您从头到尾阅读他们的文档 - 可能是我见过的最好的API文档. (2认同)