Я пытаюсь вызвать (функции теста) в $ this-> mollie-> payments-> создать метод, но я получаю сообщение об ошибке:Вызов функции в другом методе
Фатальная ошибка: неперехваченным exception «Mollie_API_Exception» с сообщением «Ошибка при выполнении вызова API (запрос): сумма меньше минимальной».
Таким образом, это означает, что $ this-> (функции теста) возвращает 0.
Я сделал следующее испытание:
$test = new gtpMollieGateway();
echo $test->testFunction();
И это дает правильное значение (расчетная сумма мой заказ).
Таким образом, это означает, что я делаю что-то не так с вызовом () функции теста в методе $ this-> mollie-> payments-> создать
Мой код для создания платежа:
// Create payment
class gtpMollieGateway {
public $mollie, $price;
function __construct() {
$this->mollie = new Mollie_API_Client;
$this->mollie->setApiKey('myapikey');
$this->price = new gtpCheckoutData();
add_action('init', array($this, 'gtpCreatePayment'));
}
private function testFunction() {
return $this->price->getPrice('inclusive');
}
public function gtpCreatePayment() {
if(isset($_POST['checkout_submit'])) {
$payment = $this->mollie->payments->create(array(
// Here is the problem
'amount' => $this->testFunction(),
));
header('Location: ' . $payment->getPaymentUrl());
}
}
}
$_mollie = new gtpMollieGateway;
класс для расчета моей суммы:
class gtpCheckoutData {
private $tax, $price;
public function __construct() {
$this->tax = get_option('gtp_theme_settings');
$this->tax = $this->tax['gtp_tax']/100;
if(isset($_SESSION['shopping_cart'])) {
$this->price = $_SESSION['shopping_cart']['total_price'] + $_SESSION['shopping_cart']['shipping_price'];
$this->shipping = $_SESSION['shopping_cart']['shipping_price'];
}
}
public function getPrice($type) {
if(isset($type)) {
switch($type) {
case 'exclusive' :
$totalPrice = $this->price;
break;
case 'tax' :
$totalPrice = $this->price * $this->tax;
break;
case 'inclusive' :
$totalPrice = $this->price * ($this->tax + 1);
break;
}
return $totalPrice;
}
}
}
Кажется, что это ошибка вашего платежного шлюза, поэтому ознакомьтесь с руководством по интеграции платежей. –
@hardiksolanki сказал, что эта ошибка возникает, когда 'amount' равно 0 –
У вас, вероятно, нет $ _SESSION ['shopping_cart'] ['total_price']. Можете ли вы выполнить var_dump ($ _ SESSION) и проверить, существует ли это внутри сеанса? Также у вас слишком много связи, попробуйте изменить коэффициент кода – Igor