/** * Update track number (logistics number) * @param $logisticsNo * @throws PilipayError */ public function updateTrackNo($logisticsNo) { $params = array('orderNo' => $this->orderNo, 'merchantNo' => $this->merchantNO, 'logisticsNo' => $logisticsNo); PilipayLogger::instance()->log('info', "Update track NO: " . json_encode($params)); $curl = new PilipayCurl(); $response = $curl->post(PilipayConfig::getUpdateTrackNoUrl(), $params); PilipayLogger::instance()->log('info', 'Update track NO result: ' . print_r(array('request' => $params, 'response' => array('statusCode' => $curl->getResponseStatusCode(), 'statusText' => $curl->getResponseStatusText(), 'content' => $curl->getResponseContent())), true)); if (!$response) { throw new PilipayError(PilipayError::EMPTY_RESPONSE, 'Updating tacking number'); } if (strcasecmp(trim($response), 'success') !== 0) { throw new PilipayError(PilipayError::UPDATE_FAILED, 'Update tracking number failed: ' . $response); } }
/** * 提交订单 * @return array * @throws PilipayError */ public function submit() { $this->notifyType = 'html'; $orderData = $this->toApiArray(); PilipayLogger::instance()->log('info', 'Submit order begin: ' . Tools::jsonEncode($orderData)); // submit $curl = new PilipayCurl(); $curl->post(PilipayConfig::getSubmitOrderUrl(), $orderData); $responseStatusCode = $curl->getResponseStatusCode(); $nextUrl = $curl->getResponseRedirectUrl(); PilipayLogger::instance()->log('info', 'Submit order end: ' . print_r(array('url' => PilipayConfig::getSubmitOrderUrl(), 'request' => $orderData, 'response' => array('statusCode' => $curl->getResponseStatusCode(), 'statusText' => $curl->getResponseStatusText(), 'nextUrl' => $nextUrl, 'content' => $curl->getResponseContent())), true)); return array('success' => $responseStatusCode < 400 && !empty($nextUrl), 'errorCode' => $responseStatusCode, 'message' => $curl->getResponseContent(), 'nextUrl' => $nextUrl); }