関数
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();
}