我正在使用embed stripe.js
表单完成后,表单会重定向到:www.mydomain.com/doc-whatever/?action=payment
此url param触发服务器端代码。缩写伪代码:
$token = $_POST['stripeToken'];
//check if customer ID exists in the DB.
//returns the stripe customer id of client attached to the document.
//May or may not be logged in.
$customers_stripe_id = get_customer_stripe_id()
if ( ! $customers_stripe_id ) {
$customer = \Stripe\Customer::create(array(
'email' => 'customer@example.com',
'source' => $token
));
$customers_stripe_id = $customer_id;
}
$charge = \Stripe\Charge::create(array(
'customer' => $customers_stripe_id,
'amount' => 5000,
'currency' => 'usd'
));
这很好用,但这里存在明显的安全问题。可以直接导航到www.mydomain.com/doc-whatever/?action=payment
,如果数据库中存储了条形客户ID,则会向卡客户收费。
答案 0 :(得分:1)
您的服务器端代码应该被授权,因此,例如,只有登录的客户本人或管理员才能触发该操作。