関数
Confirm::fulfillOrder( array $get )
パラメータ パラメータ
- $get
(配列) (必須) $_GET with $transactionId generated by LINE
ファイル: src/Api/Confirm.php
public function fulfillOrder($get) { global $usces; $transactionId = $get['transactionId']; $order_data = get_option($transactionId); $_SESSION['usces_entry'] = $order_data['usces_entry']; $_SESSION['usces_member'] = $order_data['usces_member']; $_SESSION['usces_cart'] = []; // reserialize cart for usces' cart class foreach ($order_data['usces_cart'] as $obj) { $_SESSION['usces_cart'][$obj['serial']] = [ 'quant' => $obj['quantity'], 'price' => $obj['price'], ]; } $payload = [ 'amount' => $order_data['total'], 'currency' => $order_data['currency'], ]; $confirmres = $this->module->api->confirm($payload, $transactionId); if ($confirmres instanceof GenericError) { // remove tracking delete_option($transactionId); $this->error = $confirmres; $this->errorPageRedirect(); return; } $results = []; $usces_entries = $usces->cart->get_entry(); $payments = $usces->getPayments($usces_entries['order']['payment_name']); /** * Welcart filter * * @ignore */ $nonacting_settlements = apply_filters('usces_filter_nonacting_settlements', $usces->nonacting_settlements); $res = usces_check_acting_return_duplicate($results); if ($res != null && !in_array($payments['settlement'], $nonacting_settlements)) { usces_log('order processing duplicate : acting=' . $order_data['acting'] . ', order_id=' . $res, 'acting_transaction.log'); } $order_id = usces_reg_orderdata($results); if (empty($order_id)) { // remove tracking delete_option($transactionId); $this->error = $this->module->clientErrorStore->getErrorCodeMap()[ErrorStore::INTERNAL_SERVER_ERROR]; $this->errorPageRedirect(); return; } $state = $order_data['capture_now'] ? TransactionState::CAPTURED : TransactionState::AUTHORIZED; $line_order_data = [ 'transactionId' => $transactionId, 'total' => $order_data['total'], 'currency' => $order_data['currency'], 'line_request_res' => $order_data['line_request_res'], 'line_confirm_res' => $confirmres, ]; OrderMeta::registerOrderMeta(new TransactionState($transactionId, $state), $line_order_data, $order_id); $mail_res = usces_send_ordermail($order_id); // remove tracking delete_option($transactionId); $this->completionPageRedirect(); }