diff --git a/CRM/Core/Form.php b/CRM/Core/Form.php
index 8d0c6b20d6477347c501a1d11c1ea60c65f4f44f..bc05679de024ddb797cf585e1bd2addcc7940876 100644
--- a/CRM/Core/Form.php
+++ b/CRM/Core/Form.php
@@ -766,6 +766,13 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
     $this->assign('bltID', $this->_bltID);
   }
 
+  /**
+   * @return int
+   */
+  public function getPaymentProcessorID() {
+    return $this->_paymentProcessorID;
+  }
+
   /**
    * This if a front end form function for setting the payment processor.
    *
@@ -878,9 +885,8 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
       else {
         $this->_paymentProcessor = [];
       }
-      CRM_Financial_Form_Payment::addCreditCardJs($this->_paymentProcessorID);
     }
-    $this->assign('paymentProcessorID', $this->_paymentProcessorID);
+
     // We save the fact that the profile 'billing' is required on the payment form.
     // Currently pay-later is the only 'processor' that takes notice of this - but ideally
     // 1) it would be possible to select the minimum_billing_profile_id for the contribution form
diff --git a/CRM/Core/Payment/ProcessorForm.php b/CRM/Core/Payment/ProcessorForm.php
index 6afebf6e535dda762faaaab1685180ba304147f6..9b8fc660e6717447ff73fb9e2f03ccd251c9e320 100644
--- a/CRM/Core/Payment/ProcessorForm.php
+++ b/CRM/Core/Payment/ProcessorForm.php
@@ -73,6 +73,9 @@ class CRM_Core_Payment_ProcessorForm {
 
     $form->assign('suppressSubmitButton', $form->_paymentObject->isSuppressSubmitButtons());
 
+    CRM_Financial_Form_Payment::addCreditCardJs($form->getPaymentProcessorID());
+    $form->assign('paymentProcessorID', $form->getPaymentProcessorID());
+
     $form->assign('currency', $form->getCurrency());
 
     // also set cancel subscription url
diff --git a/CRM/Financial/Form/Payment.php b/CRM/Financial/Form/Payment.php
index a559e5ec9274836888e488e040f2d5aac8449733..9deb8ea265545e01b3d6506995834fd3fc0db29c 100644
--- a/CRM/Financial/Form/Payment.php
+++ b/CRM/Financial/Form/Payment.php
@@ -79,11 +79,6 @@ class CRM_Financial_Form_Payment extends CRM_Core_Form {
 
     CRM_Core_Payment_ProcessorForm::preProcess($this);
 
-    self::addCreditCardJs($this->_paymentProcessorID);
-
-    $this->assign('paymentProcessorID', $this->_paymentProcessorID);
-    $this->assign('currency', $this->currency);
-
     $this->assign('suppressForm', TRUE);
     $this->controller->_generateQFKey = FALSE;
   }