File manager - Edit - /home/premiey/www/wp-content/plugins/ameliabooking/v3/src/views/public/Parts/Payment/Methods/PaymentCommon.vue
Back
<template> <div class="am-fs__payment_default"> </div> </template> <script setup> // * Import from Vue import { ref, inject, watchEffect } from "vue"; import httpClient from "../../../../../plugins/axios"; // * Import from Vuex import { useStore } from "vuex"; // * Composables import { useBookingData, useCreateBooking, useCreateBookingSuccess, useCreateBookingError, getErrorMessage, } from "../../../../../assets/js/public/booking.js"; const store = useStore() const emits = defineEmits(['payment-error']) const shortcodeData = inject('shortcodeData') let stepsArray = inject('stepsArray') let sidebarSteps = inject('sidebarSteps', ref([])) /************** * Navigation * *************/ const { nextStep, footerButtonReset, footerButtonClicked } = inject('changingStepsFunctions', { nextStep: () => {}, footerButtonReset: () => {}, footerButtonClicked: { value: false } }) watchEffect(() => { if (footerButtonClicked.value) { continueWithBooking() } }, {flush: 'post'}) /*********** * Payment * **********/ function razorpayVerify (paymentId, signature, orderId) { let bookingData = useBookingData( store, null, false, { paymentId: paymentId, signature: signature, orderId: orderId }, null ) useCreateBooking( store, bookingData, response => { useCreateBookingSuccess(store, response, () => { nextStep() }) }, error => { useCreateBookingError( store, error.response.data, () => { emits('payment-error', getErrorMessage()) } ) } ) } function continueWithBooking () { footerButtonReset() let isEvent = store.getters['bookableType/getType'] === 'event' let gateway = isEvent ? store.getters['payment/getPaymentGateway'] : store.getters['booking/getPaymentGateway'] let formData = isEvent ? { shortcode: shortcodeData.value, steps: stepsArray.value.map(i => i.name), } : { shortcode: shortcodeData.value, steps: stepsArray.value.map(i => i.key), sidebar: sidebarSteps.value.map(i => Object.assign({key: i.key, data: i.stepSelectedData})) } let bookingData = useBookingData( store, gateway === 'mollie' ? formData : null, false, {}, null ) store.commit(isEvent ? 'setLoading' : 'booking/setLoading', true) switch (gateway) { case ('mollie'): payment( '/payment/mollie', bookingData, function (response) { window.location = response.data.data.redirectUrl } ) break case ('razorpay'): payment( '/payment/razorpay', bookingData, function (response) { let options = response.data.data.data options.handler = function (razorpayResponse) { razorpayVerify(razorpayResponse.razorpay_payment_id, razorpayResponse.razorpay_signature, options.order_id) } options.modal = { ondismiss: function () { emits('payment-abandoned') } } let razorpay = new Razorpay(options) razorpay.open() } ) break } } function payment (endpoint, bookingData, success) { httpClient.post( endpoint, bookingData.data, bookingData.options ).then(success).catch(error => { useCreateBookingError( store, error.response.data, () => { emits('payment-error', getErrorMessage()) } )} ) } </script> <script> export default { name: 'PaymentCommon' } </script> <style lang="scss"> .amelia-v2-booking { #amelia-container { .am-fs__payment_default { &-btn { } } } } </style>
| ver. 1.4 |
Github
|
.
| PHP 5.4.45 | Generation time: 0 |
proxy
|
phpinfo
|
Settings