/** * Add payment method to request. * * @param string[] $params * @param mixed $payment * @param string[] $options * * @return array */ protected function addCard(array $params, $payment, array $options) { if (is_string($payment)) { if (Helper::startsWith($payment, 'cus')) { $params['customer'] = $payment; } else { $params['source'] = $payment; } } return $params; }
/** * Add payment method to request. * * @param string[] $params * @param mixed $payment * @param string[] $options * * @return array */ protected function addPaymentMethod(array $params, $payment, array $options) { if (is_string($payment)) { if ($payment == 'spei') { $params['bank']['type'] = 'spei'; $params['bank']['expires_at'] = Arr::get($options, 'expires', date('Y-m-d', time() + 172800)); } elseif ($payment == 'oxxo') { $params['cash']['type'] = 'oxxo'; $params['cash']['expires_at'] = Arr::get($options, 'expires', date('Y-m-d', time() + 172800)); } elseif (Helper::startsWith($payment, 'payee_')) { $params['payee_id'] = $payment; } else { $params['card'] = $payment; } } elseif ($payment instanceof CreditCard) { $params['card'] = []; $params['card']['name'] = $payment->getName(); $params['card']['cvc'] = $payment->getCvv(); $params['card']['number'] = $payment->getNumber(); $params['card']['exp_month'] = $payment->getExpiryMonth(); $params['card']['exp_year'] = $payment->getExpiryYear(); $params['card'] = $this->addAddress($params['card'], $options); } return $params; }