@lancom/shared 0.0.318 → 0.0.320
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/checkout/cart/cart_pricing/cart-pricing.scss +3 -0
- package/components/checkout/cart/cart_pricing/cart-pricing.vue +2 -2
- package/components/common/payment/payment_card/pinpayment/pinpayment.vue +31 -24
- package/components/common/payment/payment_card/stripe_payment/stripe-payment.vue +6 -2
- package/package.json +1 -1
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
</div>
|
|
53
53
|
</div>
|
|
54
54
|
<div
|
|
55
|
-
v-if="pricing.coupon
|
|
56
|
-
class="CartPricing__info lc_gray-main">
|
|
55
|
+
v-if="pricing.coupon"
|
|
56
|
+
class="CartPricing__info lc_gray-main CartPricing__info--green">
|
|
57
57
|
<div class="lc_body-large">
|
|
58
58
|
COUPON, {{ pricing.coupon.code }}:
|
|
59
59
|
</div>
|
|
@@ -86,7 +86,8 @@
|
|
|
86
86
|
</template>
|
|
87
87
|
|
|
88
88
|
<script>
|
|
89
|
-
let
|
|
89
|
+
let timer = null;
|
|
90
|
+
let pinpaymentStartLoaded = false;
|
|
90
91
|
|
|
91
92
|
export default {
|
|
92
93
|
name: 'Payment',
|
|
@@ -113,7 +114,7 @@ export default {
|
|
|
113
114
|
async mounted() {
|
|
114
115
|
this.loading = true;
|
|
115
116
|
|
|
116
|
-
await this.
|
|
117
|
+
await this.loadPinpayments();
|
|
117
118
|
|
|
118
119
|
if (window.HostedFields) {
|
|
119
120
|
await this.initHostedPayment();
|
|
@@ -125,6 +126,9 @@ export default {
|
|
|
125
126
|
});
|
|
126
127
|
}
|
|
127
128
|
},
|
|
129
|
+
destroyed() {
|
|
130
|
+
clearInterval(timer);
|
|
131
|
+
},
|
|
128
132
|
methods: {
|
|
129
133
|
initHostedPayment() {
|
|
130
134
|
this.fields = window.HostedFields.create({
|
|
@@ -201,30 +205,33 @@ export default {
|
|
|
201
205
|
);
|
|
202
206
|
});
|
|
203
207
|
},
|
|
204
|
-
async
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
208
|
+
async loadPinpayments() {
|
|
209
|
+
if (process.browser) {
|
|
210
|
+
await (new Promise((resolve, reject) => {
|
|
211
|
+
if (!pinpaymentStartLoaded) {
|
|
212
|
+
pinpaymentStartLoaded = true;
|
|
213
|
+
let domElement = document.createElement('script');
|
|
214
|
+
domElement.type = "text/javascript";
|
|
215
|
+
domElement.setAttribute('src', 'https://cdn.pinpayments.com/pin.hosted_fields.v1.js');
|
|
216
|
+
domElement.onload = () => {
|
|
217
|
+
resolve();
|
|
218
|
+
};
|
|
219
|
+
domElement.onerror = () => {
|
|
220
|
+
setTimeout(() => this.loadPinpayments(), 1000);
|
|
221
|
+
};
|
|
222
|
+
document.body.appendChild(domElement);
|
|
223
|
+
} else {
|
|
224
|
+
let repeated = 0;
|
|
225
|
+
timer = setInterval(() => {
|
|
226
|
+
if (!!window.HostedFields || repeated++ > 40) {
|
|
227
|
+
clearInterval(timer);
|
|
228
|
+
resolve();
|
|
213
229
|
}
|
|
214
|
-
},
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
},
|
|
218
|
-
loadPinpayments() {
|
|
219
|
-
return new Promise((resolve) => {
|
|
220
|
-
const script = document.createElement('script');
|
|
221
|
-
script.type = "text/javascript";
|
|
222
|
-
script.src = 'https://cdn.pinpayments.com/pin.hosted_fields.v1.js';
|
|
223
|
-
script.onload = () => resolve();
|
|
224
|
-
const body = document.getElementsByTagName('body')[0];
|
|
225
|
-
body.appendChild(script);
|
|
226
|
-
});
|
|
230
|
+
}, 500);
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
227
233
|
}
|
|
234
|
+
}
|
|
228
235
|
}
|
|
229
236
|
};
|
|
230
237
|
</script>
|
|
@@ -9,6 +9,7 @@ import api from '@lancom/shared/assets/js/api';
|
|
|
9
9
|
import { mapGetters } from 'vuex';
|
|
10
10
|
|
|
11
11
|
let stripeStartLoaded = false;
|
|
12
|
+
let timer = null;
|
|
12
13
|
|
|
13
14
|
export default {
|
|
14
15
|
name: 'PaymentStripePayment',
|
|
@@ -38,6 +39,9 @@ export default {
|
|
|
38
39
|
created() {
|
|
39
40
|
this.loadStripe();
|
|
40
41
|
},
|
|
42
|
+
destroyed() {
|
|
43
|
+
clearInterval(timer);
|
|
44
|
+
},
|
|
41
45
|
methods: {
|
|
42
46
|
async tokenize() {
|
|
43
47
|
if (this.paymentIntent) {
|
|
@@ -74,8 +78,8 @@ export default {
|
|
|
74
78
|
document.body.appendChild(domElement);
|
|
75
79
|
} else {
|
|
76
80
|
let repeated = 0;
|
|
77
|
-
|
|
78
|
-
if (typeof window.Stripe !== 'undefined' || repeated++ >
|
|
81
|
+
timer = setInterval(() => {
|
|
82
|
+
if (typeof window.Stripe !== 'undefined' || repeated++ > 40) {
|
|
79
83
|
this.onLoaded();
|
|
80
84
|
clearInterval(timer);
|
|
81
85
|
}
|