我有条纹检查与
PHP.它创造了客户并为他们收费.我想创建一个捐赠表单,如果同一个客户回来并提供相同的电子邮件地址,Stripe不会创建另一个客户,但会向现有客户收取额外付款.这可能吗?或者结账总是创建具有新客户ID的新客户?
这是我的charge.PHP
<?PHP require_once('config.PHP'); $token = $_POST['stripeToken']; if($_POST) { $error = NULL; try{ if(!isset($_POST['stripeToken'])) throw new Exception("The Stripe Token was not generated correctly"); $customer = Stripe_Customer::create(array( 'card' => $token,'email' => $_POST['stripeEmail'],'description' => 'Thrive General Donor' )); $charge = Stripe_Charge::create(array( 'customer' => $customer->id,'amount' => $_POST['donationAmount'] * 100,'currency' => 'usd' )); } catch(Exception $e) { $eror = $e->getMessage(); } } ?>
您需要在数据库中存储电子邮件地址和Stripe客户ID之间的关系.我已经通过观察
Stripe’s API on Customers确定了这一点.
首先,在创建新客户时,每个字段都是可选的.这让我相信,每次你发布到/ v1 / customers时,它都会“[创建]一个新的客户对象”.
此外,在检索客户时,唯一可用的字段是id.这使我相信您无法根据电子邮件地址或其他字段检索客户.
如果您无法将此信息存储在数据库中,则始终可以使用GET / v1 / customers列出所有客户.这将要求您分页并检查所有客户对象,直到找到具有匹配电子邮件地址的客户对象.如果每次尝试创建客户时都可以看到这样做效率很低.