if (!empty($this->_doDirectPaymentResult)) {
$result = $this->_doDirectPaymentResult;
- if (CRM_Utils_Array::value('payment_status_id', $result) === 'failed') {
+ if (empty($result['payment_status_id'])) {
+ $result['payment_status_id'] = array_search('Pending', $statuses);
+ $result['payment_status'] = 'Pending';
+ }
+ if ($result['payment_status_id'] === 'failed') {
throw new PaymentProcessorException($result['message'] ?? 'failed');
}
$result['trxn_id'] = array_shift($this->_doDirectPaymentResult['trxn_id']);
*/
public function testSubmitCreditCardFee() {
$form = new CRM_Contribute_Form_Contribution();
- $this->paymentProcessor->setDoDirectPaymentResult(['is_error' => 0, 'trxn_id' => 'tx', 'fee_amount' => .08]);
+ $this->paymentProcessor->setDoDirectPaymentResult(['payment_status_id' => 1, 'is_error' => 0, 'trxn_id' => 'tx', 'fee_amount' => .08]);
$form->_mode = 'Live';
$form->testSubmit([
'total_amount' => 50,
$mut = new CiviMailUtils($this, TRUE);
$this->setUpMembershipContributionPage(TRUE);
$processor = Civi\Payment\System::singleton()->getById($this->_paymentProcessor['id']);
- $processor->setDoDirectPaymentResult(['fee_amount' => .72]);
+ $processor->setDoDirectPaymentResult(['payment_status_id' => 1, 'fee_amount' => .72]);
$submitParams = [
'price_' . $this->_ids['price_field'][0] => reset($this->_ids['price_field_value']),
'id' => (int) $this->_ids['contribution_page'],