我对如何使用 Stripe 处理订阅 + 费用支付有点困惑,
这是我得到的:
HTML:
<form id="req" action="/thank-you" method="post">
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_RrE21sY9Xbtwq9ZvbKPpp0LJ"
data-name="Wizard.Build Hosting Package"
data-description=""
data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-currency="usd">
</script>
...
感谢页面:
require_once('lib-stripe/init.php');
// create api key
\Stripe\Stripe::setApiKey("sk_TESTING");
// create customer
$customerO =\Stripe\Customer::create(array(
"email" => $_POST["e"]
));
$customer = $customerO->jsonSerialize();
//var_dump($customer);
//create subscription (Package Bronze, Silver or Gold)
$subscriptionO = \Stripe\Subscription::create(array(
"customer" => $customer["id"],
"items" => array(
array(
"plan" => $_POST["pack"],
),
)
));
$subscription = $subscriptionO->jsonSerialize();
//var_dump($subscription);
//create invoice (3rdparty cost)
$invoiceO = \Stripe\Invoice::create(array(
"customer" => $customer["id"],
"amount" =>$p3price,
"currency" => "usd",
"description" => "3rdp Cost",
"subscription" => $subscription["id"]
));
$invoice = $invoiceO->jsonSerialize();
//var_dump($invoice);
我显然不知道整个过程是如何工作的......
我将填充电子邮件字段,但我如何在该弹出表单中请求每月重新发生的设置费和订阅?
理想的工作流程如下:
我的网站页面的形式: 用户填写姓名、邮箱、商品名称[需要此元数据]、商品价格、包裹名称[需要此元数据]、包裹价格
点击提交按钮, Stripe 弹出表单出现预填充电子邮件,用户同意打包月付款 + 商品价格,用户输入卡信息, 用户提交 Stripe 表单,
用户现在需要支付第 1 个月的包裹费用 + 商品价格,包裹每月自动付款。
返回一个包含所有元数据、价格、包裹等的 url,带有密码或某种安全表单字段,然后我根据返回的 url 数据自动处理订单,
请帮忙,感谢社区!
最佳答案
我想我可以指导您完成整个过程,您必须遵循非常简单的步骤并检查是否一切顺利。
使用 Stripe 仪表板或 Stripe API(下面的 PHP 代码示例)创建计划
\Stripe\Stripe::setApiKey("<YOUR SECRET KEY>"); $plan = \Stripe\Plan::create([ 'product' => {'name' => 'Plan name'}, 'nickname' => 'Plan code', 'interval' => 'month', 'currency' => 'usd', 'amount' => 10, ]);
使用 JS/PHP 等在 Stripe 中创建客户并保存 id 以供引用。(下面的 PHP 代码示例)
\Stripe\Stripe::setApiKey("<YOUR SECRET KEY>"); $customer = \Stripe\Customer::create([ 'email' => 'customer@example.com', ]);
此调用的响应将为在 stripe 上创建的客户提供一个 json
{ "id": "<UNIQUE ID>", ... }
您需要将 id 保存在变量或数据库中
为客户订阅计划。(下面的 PHP 示例代码)
\Stripe\Stripe::setApiKey("<YOUR SECRET KEY>"); $subscription = \Stripe\Subscription::create([ 'customer' => '<UNIQUE ID>', 'items' => [['plan' => '<PLAN ID>']], ]);
您可以在 Official Stripe documentation 上找到更多详细信息
关于javascript - Stripe 支付流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48594903/