質問編集履歴
4
javascriptタグを追加しました
title
CHANGED
File without changes
|
body
CHANGED
File without changes
|
3
初心者マークをつけ忘れていたため、つけました
title
CHANGED
File without changes
|
body
CHANGED
@@ -19,6 +19,7 @@
|
|
19
19
|
|
20
20
|
動かなくなったのは、「単発」と「継続」の二種類の下に、複数のプランを下げて、選択肢を増やした後です
|
21
21
|
|
22
|
+
|
22
23
|
```
|
23
24
|
エラーメッセージ:ありません
|
24
25
|
```
|
2
jsファイルを追記しました
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,6 +54,69 @@
|
|
54
54
|
</ul>
|
55
55
|
</form>
|
56
56
|
```
|
57
|
+
|
58
|
+
```js
|
59
|
+
|
60
|
+
var stripe = Stripe('pk_test_XXXXXX');
|
61
|
+
|
62
|
+
var elements = stripe.elements();
|
63
|
+
|
64
|
+
var style = {
|
65
|
+
base: {
|
66
|
+
color: '#000',
|
67
|
+
fontSize: '12px'
|
68
|
+
},
|
69
|
+
invalid: {
|
70
|
+
color: '#000',
|
71
|
+
iconColor: '#000'
|
72
|
+
}
|
73
|
+
};
|
74
|
+
|
75
|
+
const cardNumber = elements.create('cardNumber', {style: style,placeholder: 'カード番号 1111 1111 1111 1111'});
|
76
|
+
cardNumber.mount('#card-number');
|
77
|
+
const cardExpiry = elements.create('cardExpiry',{style: style,placeholder: '有効期限 MM/YY'});
|
78
|
+
cardExpiry.mount('#card-expiry');
|
79
|
+
const cardCvc = elements.create('cardCvc', {style: style,placeholder: 'セキュリティ番号'});
|
80
|
+
cardCvc.mount('#card-cvc');
|
81
|
+
|
82
|
+
cardNumber.addEventListener('change', function(event) {
|
83
|
+
var displayError = document.getElementById('stripe_err');
|
84
|
+
if (event.error) {
|
85
|
+
displayError.textContent = event.error.message;
|
86
|
+
} else {
|
87
|
+
displayError.textContent = '';
|
88
|
+
}
|
89
|
+
});
|
90
|
+
|
91
|
+
var form = document.getElementById('payment-form');
|
92
|
+
form.addEventListener('submit', function(event) {
|
93
|
+
event.preventDefault();
|
94
|
+
stripe.createToken(cardNumber).then(function(result) {
|
95
|
+
if (result.error) {
|
96
|
+
var errorElement = document.getElementById('stripe_err');
|
97
|
+
errorElement.textContent = result.error.message;
|
98
|
+
} else {
|
99
|
+
// Send the token to your server.
|
100
|
+
stripeTokenHandler(result.token);
|
101
|
+
}
|
102
|
+
});
|
103
|
+
});
|
104
|
+
|
105
|
+
function stripeTokenHandler(token) {
|
106
|
+
// Insert the token ID into the form so it gets submitted to the server
|
107
|
+
var form = document.getElementById('payment-form');
|
108
|
+
var hiddenInput = document.createElement('input');
|
109
|
+
hiddenInput.setAttribute('type', 'hidden');
|
110
|
+
hiddenInput.setAttribute('name', 'stripeToken');
|
111
|
+
hiddenInput.setAttribute('value', token.id);
|
112
|
+
form.appendChild(hiddenInput);
|
113
|
+
|
114
|
+
// Submit the form
|
115
|
+
form.submit();
|
116
|
+
}
|
117
|
+
|
118
|
+
```
|
119
|
+
|
57
120
|
```php
|
58
121
|
<?php
|
59
122
|
|
1
タイトルを具体的にしました
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Stripe
|
1
|
+
【Stripe】複数のプランの中から一つを選択できるフォームを作りたい
|
body
CHANGED
File without changes
|