[英]Stripe API recurring payments with Php
我正在使用Stripe API进行一次付款,使用以下方法可以很好地工作:
$stripe = array("secret_key" => "MY_SECRET_KEY", "publishable_key" => "MY_PUBLISHABLE_KEY");
Stripe::setApiKey($stripe['secret_key']);
try {
$charge = Stripe_Charge::create(array(
"amount" => round($_POST['amount'] * 100, 0),
"currency" => "USD",
"card" => array(
"number" => 111111111111111111,
"exp_month" => 10,
"exp_year" => 2017,
"cvc" => 321,
),
"description" => $_POST['item_name']));
$json = json_decode($charge);
$amount_charged = round(($json->{'amount'} / 100), 2);
//process payment here......
}
catch (Stripe_CardError $e) {
$body = $e->getJsonBody();
print json_encode($json);
}
现在,我希望能够通过捕获用户信用卡信息并每月执行一次cron作业来进行定期付款。 以上工作正常吗,还是我需要其他东西。 我知道Stripe内置了用于定期付款的功能,但在我的情况下,每个月的付款金额会有所不同。
您的示例中缺少的是客户记录。 您会看到,Stripe不允许您重复使用令牌。 它们是一次性的。 为了扩展您要寻找的功能,您需要将付款详细信息安全地存储在某处。 如果您符合PCI标准,那当然可以在您自己的本地数据存储中; 但是,如果您想使自己更轻松,则可以为每个用户及其相关的付款方式建立客户记录。
在正常构造费用时,您将使用创建费用 API请求。
您现在正在执行此操作,并将令牌ID作为source
传递。 相反,您要做的是先创建一个客户 ,然后通过创建Card附加该付款来源。 (我建议将它们分为两个单独的步骤,这样您就可以更好地管理具有多个付款方式的客户。)
然后,要再次收取该记录,您将再次创建“创建费用 API请求”,但您需要在customer
-argument中传递客户ID,然后(可选)将源ID( card_xxx
)传递至source
-argument 。 如果您没有传递source
参数,但是传递了customer
参数,它将使用默认的付款来源。
希望有帮助!
您不能每月使用卡令牌进行收费吗? 与其使用他们的卡令牌传递卡,不如将其更安全。 但是否则您的代码看起来还不错。 您应该每个月都可以这样收费。
编辑
忘记了,由于CC令牌仅一次使用,因此您将需要创建Stripe客户并将CC令牌分配给该Stripe客户。 创建Stripe客户后,您将可以每月向该客户收费。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.