This document defines the Batch which is responsible to fetch the latest Payment status from the Gateway and updates the associated Payment Transaction record in Salesforce.
🛠️ Batch Job: BatchGetPaymentTransactionStatus
-
🔍 Retrieves current payment status (e.g.,
Settled,Failed) by making an API call to the payment gateway -
📥 Updates corresponding
cm_finance__Payment_Transaction__crecords in Salesforce with:-
Latest Payment Status
-
Gateway Error Message (if any)
-
⚙️ Custom Query Filter
-
🧩 Controlled via
PaymentStatus_WhereClausein Payment Guru Common Setting (Custom Metadata) -
🧠 Use this metadata to dynamically control which transactions are picked for status update
⏱️ Scheduling
-
⏰ Can be scheduled via Apex Scheduler
-
🔁 Enables automatic periodic updates (e.g., Daily, Weekly) without manual intervention
💻 Execution Script
👉 Run batch without filter (uses metadata-based query):
Database.executeBatch(new BatchGetPaymentTransactionStatus(), 1);
👉 Run batch with a custom SOQL query:
String sQuery = 'SELECT Id, cm_finance__Payment_Status__c, cm_finance__Transaction_Status__c, cm_finance__Gateway_Error_Message__c, cm_finance__Transaction_Id__c, cm_finance__Payment_Gateway__c FROM cm_finance__Payment_Transaction__c WHERE cm_finance__Payment_Status__c = \'Accepted\'';
Database.executeBatch(new BatchGetPaymentTransactionStatus(sQuery), 1);
✅ Benefits
-
📊 Accurate, real-time transaction statuses
-
🔒 Reduced manual reconciliation effort
-
⚡ Supports automation and reporting