与表格价格相同的条纹计费
Stripe billing with same price as form
所以我希望向客户(不是用户)收取与条形表格中显示的金额相同的金额
<form action="/charge" method="POST">
{!! csrf_field() !!}
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_key"
data-amount="{{ $note->price*100 }}"
data-name="Hello World"
data-description="{{$note->title}}"
data-image="/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-currency="aud">
</script>
</form>
在表格中显示的价格是相关票据模型中列出的价格* 100。我希望客户实际收到这个值,它会根据票据而变化。
这是我的服务器账单
public function charge()
{
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_key");
// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 100, // amount in cents, again
"currency" => "aud",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
return 'payment succesful';
}
我需要将 "amount" 设置为等于音符值。
否则,我的出纳员测试账户正在付款,其他大部分都需要正常工作。
虽然客户不是注册用户。
数量需要是你计算服务器端的东西,否则人们可以修改 DOM 并传递他们想要的任何数量。
相反,将id
存储在服务器端的缓存中,并将note
作为依赖项传递给charge
函数,然后比较2.
/**
* Assuming name of "view" page
*/
public function checkout(Note $note)
{
/**
* Always forget this on each page load, so we can switch seamlessly between Notes.
*/
Illuminate\Support\Facades\Cache::forget('nid')->put('nid', $note->id);
}
不要忘记修改 charge
路由以包含对我们的 Note
依赖项的新引用
route::post('charge/{note}', 'Controller@charge')->name('charge');
确保更新您的表格以通过 note
<form action="{{route('charge', $note)}}" method="POST">
旁注我喜欢命名路由,但这不是必需的。
然后在处理请求时,比较 $nid
和 $note->id
public function charge(Illuminate\Http\Request $request, Note $note)
{
$nid = Illuminate\Support\Facades\Cache::get('nid');
// id's match, no sneaky stuff. safe to use $note->price now
if ($nid === $note->id) {
//now we can process our payment.
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_key");
// Get the credit card details submitted by the form
$token = $request->get('stripeToken');
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => number_format($note->price, 0, '', ''), // amount in cents, again
"currency" => "aud",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
}
}
所以我希望向客户(不是用户)收取与条形表格中显示的金额相同的金额
<form action="/charge" method="POST">
{!! csrf_field() !!}
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="pk_test_key"
data-amount="{{ $note->price*100 }}"
data-name="Hello World"
data-description="{{$note->title}}"
data-image="/img/documentation/checkout/marketplace.png"
data-locale="auto"
data-currency="aud">
</script>
</form>
在表格中显示的价格是相关票据模型中列出的价格* 100。我希望客户实际收到这个值,它会根据票据而变化。
这是我的服务器账单
public function charge()
{
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_key");
// Get the credit card details submitted by the form
$token = $_POST['stripeToken'];
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => 100, // amount in cents, again
"currency" => "aud",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
return 'payment succesful';
}
我需要将 "amount" 设置为等于音符值。
否则,我的出纳员测试账户正在付款,其他大部分都需要正常工作。
虽然客户不是注册用户。
数量需要是你计算服务器端的东西,否则人们可以修改 DOM 并传递他们想要的任何数量。
相反,将id
存储在服务器端的缓存中,并将note
作为依赖项传递给charge
函数,然后比较2.
/**
* Assuming name of "view" page
*/
public function checkout(Note $note)
{
/**
* Always forget this on each page load, so we can switch seamlessly between Notes.
*/
Illuminate\Support\Facades\Cache::forget('nid')->put('nid', $note->id);
}
不要忘记修改 charge
路由以包含对我们的 Note
依赖项的新引用
route::post('charge/{note}', 'Controller@charge')->name('charge');
确保更新您的表格以通过 note
<form action="{{route('charge', $note)}}" method="POST">
旁注我喜欢命名路由,但这不是必需的。
然后在处理请求时,比较 $nid
和 $note->id
public function charge(Illuminate\Http\Request $request, Note $note)
{
$nid = Illuminate\Support\Facades\Cache::get('nid');
// id's match, no sneaky stuff. safe to use $note->price now
if ($nid === $note->id) {
//now we can process our payment.
// Set your secret key: remember to change this to your live secret key in production
// See your keys here https://dashboard.stripe.com/account/apikeys
\Stripe\Stripe::setApiKey("sk_test_key");
// Get the credit card details submitted by the form
$token = $request->get('stripeToken');
// Create the charge on Stripe's servers - this will charge the user's card
try {
$charge = \Stripe\Charge::create(array(
"amount" => number_format($note->price, 0, '', ''), // amount in cents, again
"currency" => "aud",
"source" => $token,
"description" => "Example charge"
));
} catch(\Stripe\Error\Card $e) {
// The card has been declined
}
}
}