我正在使用API接收支付网关的支付交易确认,如下所示 . 但是我无法使用响应并插入数据库中 .
我的控制器:
$transaction_id= filter_input(INPUT_POST, 'pay_id');
$api = new Api('ID', 'key');
//getting object of transation
$payment = $api->payment->fetch($transaction_id);
//passing payment details to database
$this->Payment_model->set_payment($transaction_id,true);
$payment
数组的当前结构:
pay\Api\Payment Object ( [attributes:protected] => Array ( [id] => pay_BVzDNK3vsp4Owl [entity] => payment [amount] => 35400 [currency] => INR [status] => authorized [order_id] => ) )
我的 pay_model.php
:
public function set_payment($payment,$first)
{
$data = array(
'id' => $id,
'entity' => $entity,
'amount' => $amount,
'currency' => $currency,
'status' => $status,
'order_id' => $order_id,
'updated_at' => date('Y-m-d H:i:s')
);
if ($first == TRUE) {
//print_r($data);
// echo "breakpoint--i am in set user model id 0";
return $this->db->insert('payments', $data);
} else {
//echo "breakpoint--i am in set user model id not 0";
$this->db->where('id', $id);
return $this->db->update('payments', $data);
}
}
Issue :我的$ data数组总是接收NULL值 . 如何使用我在这里收到的数据并传递给模型以进行插入/更新操作 .
2 回答
$data
数组的值未在函数作用域中定义(它为您提供NULL值) .你有2个错误 . 首先是将正确的数据发送到
set_payment
函数:我认为第二行应该是:
发送
$payment
而不是$transaction_id
.第二个错误是在
set_payment
函数中使用数据时 . 创建$data
时,您应该将其用作:在
set_payment()
:您的数据数组应如下所示: