【发布时间】:2017-12-23 23:52:36
【问题描述】:
我的代码创建并加载 Stripe Checkout,客户在其中输入姓名和卡详细信息,然后返回到接收令牌并用于创建 Stripe 客户的 php 脚本,然后发送购买请求以向他们的卡收费。
在可能的情况下,如何最好地使用同一张卡和omnipay 库添加订阅?我是使用令牌还是从购买对象中获取源 ID 并使用它,并在购买后创建订阅?
在类中,以下代码中对 createSubscription 的调用给出了错误“此客户没有附加的付款来源”。
public function createSubscription($token,$customer_id,$plan,$source_id)
{
try {
$response = $this->gateway->createSubscription(
array(
'customerReference' => $customer_id,
'plan' => $plan,
'source' => $token
)
)->send();
if ($response->isSuccessful()) {
$data = $response->getData();
return $data;
}
} catch (Exception $e) {
$message = "Error creating Stripe subscription: " . $e->getMessage();
return;
}
}
【问题讨论】:
-
Stripe 订阅将始终向客户收取默认卡 (default_source) 的费用,因此如果您已经添加了卡,则无需传递 'source' 你在此处传递什么给 'source' ?从 Stripe.js/Checkout 获得的令牌(用于测试:tok_visa)?
-
我尝试在客户完成“结帐”后传递从 Stripe 收到的令牌。不确定此处的“源”是否可以是令牌,或者它是否必须是源 ID 或卡对象。刷卡后我会尝试添加订阅,但不确定来源是否只适合一次性收费。
-
使用源 ID 或令牌购买后无法正常工作,我收到“invalid_request_error - 此客户没有附加付款来源”。我将使用创建客户请求重试。