feat: payment gateway settings

This commit is contained in:
Jannat Patel
2024-09-25 10:50:53 +05:30
parent e0f569c382
commit 35a7cce283
4 changed files with 38 additions and 7 deletions

View File

@@ -113,6 +113,12 @@ const tabsStructure = computed(() => {
description: description:
'Configure the payment gateway and other payment related settings', 'Configure the payment gateway and other payment related settings',
fields: [ fields: [
{
label: 'Payment Gateway',
name: 'payment_gateway',
type: 'Link',
doctype: 'Payment Gateway',
},
{ {
label: 'Razorpay Key', label: 'Razorpay Key',
name: 'razorpay_key', name: 'razorpay_key',
@@ -254,6 +260,24 @@ const tabs = computed(() => {
}) })
}) })
const paymentGateways = computed(() => {
const gateways = [
'Razorpay',
'Stripe',
'Mpesa',
'Patym',
'Paypal',
'Braintree',
'GoCardless',
]
return gateways.map((gateway) => {
return {
label: gateway,
value: gateway,
}
})
})
watch(show, async () => { watch(show, async () => {
if (show.value) { if (show.value) {
const currentTab = await tabs.value const currentTab = await tabs.value

View File

@@ -22,13 +22,13 @@
v-if="field.type == 'Link'" v-if="field.type == 'Link'"
v-model="field.value" v-model="field.value"
:doctype="field.doctype" :doctype="field.doctype"
:label="field.label" :label="__(field.label)"
/> />
<Codemirror <Codemirror
v-else-if="field.type == 'Code'" v-else-if="field.type == 'Code'"
v-model:value="field.value" v-model:value="field.value"
:label="field.label" :label="__(field.label)"
:height="200" :height="200"
:options="{ :options="{
mode: field.mode, mode: field.mode,
@@ -40,9 +40,10 @@
v-else v-else
:key="field.name" :key="field.name"
v-model="field.value" v-model="field.value"
:label="field.label" :label="__(field.label)"
:type="field.type" :type="field.type"
:rows="field.rows" :rows="field.rows"
:options="field.options"
/> />
</div> </div>
</div> </div>

View File

@@ -335,15 +335,15 @@
}, },
{ {
"fieldname": "payment_gateway", "fieldname": "payment_gateway",
"fieldtype": "Select", "fieldtype": "Link",
"label": "Payment Gateway", "label": "Payment Gateway",
"options": "Razorpay\nMpesa\nPaytm\nBraintree\nStripe\nPaypal\nGoCardless" "options": "Payment Gateway"
} }
], ],
"index_web_pages_for_search": 1, "index_web_pages_for_search": 1,
"issingle": 1, "issingle": 1,
"links": [], "links": [],
"modified": "2024-09-24 18:09:25.366651", "modified": "2024-09-24 19:55:47.914930",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "LMS", "module": "LMS",
"name": "LMS Settings", "name": "LMS Settings",

View File

@@ -22,6 +22,12 @@ def get_payment_link(doctype, docname, amount, total_amount, currency, address):
amount_with_gst = total_amount if total_amount != amount else 0 amount_with_gst = total_amount if total_amount != amount else 0
payment = record_payment(address, doctype, docname, amount, currency, amount_with_gst) payment = record_payment(address, doctype, docname, amount, currency, amount_with_gst)
controller = get_controller(payment_gateway)
if controller.doctype == "Stripe Settings":
print(controller.as_dict())
doctype = "Stripe Settings"
docname = controller.name
payment_details = { payment_details = {
"amount": total_amount, "amount": total_amount,
@@ -37,7 +43,7 @@ def get_payment_link(doctype, docname, amount, total_amount, currency, address):
"redirect_to": f"/lms/batches/{docname}", "redirect_to": f"/lms/batches/{docname}",
"payment": payment.name, "payment": payment.name,
} }
controller = get_controller(payment_gateway) print(controller)
url = controller.get_payment_url(**payment_details) url = controller.get_payment_url(**payment_details)
return url return url