カテゴリー:
Stripe
閲覧数:348 配信日:2019-03-18 09:43
\Stripe\PaymentIntentオブジェクト
顧客から支払いを集めるというあなたの意図を表し、各段階を通して支払いプロセスのライフサイクルを追跡するオブジェクト
チェックアウトフローの開始時に PaymentIntent を作成すると
・「注文に対する支払いの試行」をすべて追跡できる
create()メソッド
// 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_●●");
$paymentintent = \Stripe\PaymentIntent::create([
"amount" => 1099,
"currency" => "eur",
"payment_method_types" => ["card"],
]);
Stripe\PaymentMethodオブジェクト
顧客の支払い方法を表す
・PaymentIntentsと共に支払いを収集するために使用することも、将来の支払いのために商品の詳細を保存するためにCustomerオブジェクトに保存することもできる
create()メソッド
・非推奨
・サーバで直接createメソッド実行するのではなく、「Stripe.js、Stripeモバイルバインディング、Stripe Checkout」の何れかを介した方が(一般的には)良い
// 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_xxxx");
$paymentMethod = \Stripe\PaymentMethod::create([
'type' => 'card',
'card' => [
'number' => '4000003920000003',
'exp_month' => 4,
'exp_year' => 2020,
'cvc' => '314'
]
]);
stripe.createPaymentMethod(type, element[, data])
// 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_xxxx");
$paymentintent = \Stripe\PaymentIntent::create([
// "amount" => 1099,
"currency" => "jpy",
// "payment_method_types" => ["card"],
]);
?>
<input id="cardholder-name" type="text">
<!-- placeholder for Elements -->
<div id="card-element"></div>
<button id="card-button" data-secret="<?php echo $paymentintent->client_secret; ?>">
Submit Payment
</button>
<script src="https://js.stripe.com/v3/"></script>
<script>
const stripe = Stripe('pk_test_sodaTzCycoslfNFDdujc9U5r');
const elements = stripe.elements();
const cardElement = elements.create('card');
cardElement.mount('#card-element');
const cardholderName = document.getElementById('cardholder-name');
const cardButton = document.getElementById('card-button');
const clientSecret = cardButton.dataset.secret;
cardButton.addEventListener('click', async (ev) => {
// const {paymentIntent, error} = await stripe.handleCardPayment(
// clientSecret, cardElement, {
// payment_method_data: {
// billing_details: {name: cardholderName.value}
// }
// }
// );
const {paymentMethod, error} = await stripe.createPaymentMethod('card', cardElement, {
billing_details: {
name: cardholderName.value,
},
});
if (error) {
// Display error.message in your UI.
console.log(error)
} else {
// The payment has succeeded. Display a success message.
console.log("成功")
console.log(paymentMethod.id)
console.log(paymentMethod)
}
});
</script>
\Stripe\Checkout\Sessionオブジェクト
checkout.session.completed Webhookに含まれている