示例#1
0
 private function _make_common_order_list_data($transaction_details)
 {
     $action = 'orderdetail';
     $api_type = "xml";
     //$transaction_details['order_id']=16275;
     $order_gateway_url = $transaction_details['zencart_gateway_url'] . "/" . $action . "/?id=" . $transaction_details['order_id'] . "&domain=" . $transaction_details['domain'] . "&api_type=" . $api_type;
     echo $order_gateway_url . "\n";
     $ch = curl_init();
     $header[] = "Content-type: text/xml";
     //定义content-type为xml
     curl_setopt($ch, CURLOPT_URL, $order_gateway_url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
     $response = curl_exec($ch);
     curl_close($ch);
     $arr = parseNamespaceXml(trim($response));
     //echo $arr['Domain']."\n";
     //echo $order_gateway_url;
     //$ship_to_country = $this->mixture_model->get_country_name_in_english_by_code(strtoupper($transaction_details['shipping_address']['country_id']));
     $ship_to_country = $arr['Country'];
     $import_date = date('Y-m-d H:i:s');
     $item_titles = array();
     $item_ids = array();
     $item_qties = array();
     $item_codes = array();
     $item_price = array();
     //var_dump($arr['Products']['Product']);
     //var_dump($arr);
     if ($arr['ItemNum'] == 1) {
         $arr['Products']['Product'] = $arr['Products'];
     }
     foreach ($arr['Products']['Product'] as $key => $product) {
         //var_dump($product);
         //echo $key.":".$value."\n";
         /*
         				if ($this->sale_model->check_exists('product_makeup_sku', array('makeup_sku' => trim($product['Model']) )))
         				{
         					$makeup_sku=$this->product_makeup_sku_model->fetch_makeup_sku_by_sku(trim($product['Model']));
         					$sku_arr=explode(',', $makeup_sku->sku);
         					$qty_arr=explode(',', $makeup_sku->qty);
         					foreach($sku_arr as $key=>$value)
         					{
         						$count_sku=(int)$product['Qty']*$qty_arr[$key];
         						$item_titles[] = trim(base64_decode($product['Title']));
         						$item_qties[] = $count_sku;
         						$item_ids[] = (int)$product['Id'];
         						$item_codes[] = trim($value);
         						$item_price[] = trim($product['Price']);
         						
         					}
         				}else{*/
         $item_titles[] = trim(base64_decode($product['Title']));
         $item_qties[] = (int) $product['Qty'];
         $item_ids[] = (int) $product['Id'];
         $item_codes[] = trim($product['Model']);
         $item_price[] = trim($product['Price']);
         //}
     }
     //$is_register='SGS';// strpos($arr['ShippingMethod'], 'Registered Air Mail') !== false
     $is_register = 'CHS';
     $sp_country = array('ITALY', 'SPAIN', 'PORTUGAL', 'FRANCE', 'BELGIUM', 'LUXEMBOURG', 'MONACO', 'NETHERLANDS', 'UNITED KIONGDOM', 'IRELAND', 'GERMANY');
     $sp_country1 = array('SWEDEN', 'DENMARK', 'FINLAND', 'NORWAY');
     if ($arr['Gross'] < 15 && $arr['Shippingamt'] == '1.99' || $arr['Gross'] >= 15) {
         if (strtoupper($ship_to_country) == 'UNITED STATES') {
             $is_register = 'EUB';
         }
         if (strtoupper($ship_to_country) == 'BRAZIL') {
             $is_register = 'CNR';
         }
         if (in_array(strtoupper($ship_to_country), $sp_country)) {
             $is_register = 'CHR';
         }
         if (in_array(strtoupper($ship_to_country), $sp_country1)) {
             $is_register = 'SGR';
         }
         if (!in_array(strtoupper($ship_to_country), $sp_country1) && !in_array(strtoupper($ship_to_country), $sp_country)) {
             $is_register = 'SGR';
         }
     }
     if (strpos($arr['ShippingMethod'], 'DHL Rates') !== false) {
         $is_register = 'DHL';
     }
     if (strpos($arr['ShippingMethod'], 'EMS Rates') !== false) {
         $is_register = 'EMS';
     }
     $order_status = $this->order_statuses['wait_for_purchase'];
     $sp_country = array('RUSSIA', 'UKRAINE', 'SPAIN', 'ROMANIA', 'VIETNAM', 'MALAYSIA', 'PHILIPPINES', 'ZAMBIA', 'SOUTH AFRICA', 'UGANDA', 'EGYPT', 'SUDAN', 'LIBYA', 'TUNISIA', 'ALGERIA', 'MOROCCO', 'ETHIOPIA', 'KENYA', 'TANZANIA', 'RWANDA', 'SEYCHELLES', 'MALI', 'SIERRA LEONE', 'LIBERIA', "Côte d'Ivoire", 'REPUBLIC OF IVORY COAST', 'GHANA', 'NIGER', 'NIGERIA', 'BENIN', 'CHAD', 'CENTRAL AFRICAN REPUBLIC', 'CAMEROON', 'ANGOLA');
     if ($arr['Gross'] > 200 || $arr['PaymentMethod'] != 'PayPal' || count($item_codes) >= 2 || in_array(strtoupper($ship_to_country), $sp_country)) {
         $order_status = $this->order_statuses['wait_for_confirmation'];
     }
     $auction_sites = explode(" ", preg_replace("/\\s/", " ", $arr['Domain']));
     if ($arr['StoreId'] == 'www.7daysget.com') {
         $auction_sites = '7DG';
     }
     if ($arr['StoreId'] == 'www.screamprice.com') {
         $auction_sites = 'SP';
     }
     $item_no = $arr['ItemNo'];
     $sys_remark = $this->_create_sys_remark($import_date, $item_no);
     $note = !empty($arr['Note']) ? trim(base64_decode($arr['Note'])) : '';
     $note_array = array();
     $note_array = unserialize($note);
     foreach ($note_array as $key => $value) {
         $note_array[$key] = iconv("GB2312", "UTF-8", $value);
     }
     //echo implode('', $note_array);die();
     $data = array('list_date' => $arr['ListDate'], 'list_time' => $arr['ListTime'], 'time_zone' => 'PDT', 'created_at' => $arr['DatePurchased'], 'payment_status' => isset($arr['PaymentStatus']) && !empty($arr['PaymentStatus']) ? $arr['PaymentStatus'] : 'NONE', 'name' => $arr['Name'], 'item_title_str' => implode(ITEM_TITLE_SEP, $item_titles), 'item_id_str' => implode(',', $item_ids), 'item_price_str' => implode(',', $item_price), 'qty_str' => implode(',', $item_qties), 'sku_str' => implode(',', $item_codes), 'currency' => $arr['Currency'], 'gross' => $arr['Gross'], 'fee' => 0, 'net' => $arr['Net'], 'shippingamt' => $arr['Shippingamt'], 'note' => implode('', $note_array), 'from_email' => $arr['FromeMail'], 'to_email' => $this->zencart_web_paypal, 'transaction_id' => isset($arr['PaypalTransactionId']) && !empty($arr['PaypalTransactionId']) ? $arr['PaypalTransactionId'] : '', 'item_no' => $item_no, 'is_register' => $is_register, 'payment_type' => $arr['PaymentMethod'], 'counterparty_status' => '', 'address_status' => '', 'shipping_handling_amount' => '', 'insurance_amount' => 0, 'sales_tax' => $arr['SalesTax'], 'auction_site' => $auction_sites, 'auction_site_type' => 'zencart', 'buyer_id' => $arr['FromeMail'], 'item_url' => '', 'closing_date' => '', 'reference_txn_id' => '', 'invoice_number' => '', 'subscription_number' => '', 'custom_number' => '', 'receipt_id' => '', 'sys_remark' => $sys_remark, 'address_line_1' => preg_replace("/\\s/", " ", $arr['AddressLine']), 'address_line_2' => '', 'town_city' => $arr['TownCity'], 'state_province' => isset($arr['StateProvince']) ? $arr['StateProvince'] : '', 'zip_code' => $arr['ZipCode'], 'country' => $ship_to_country, 'contact_phone_number' => isset($arr['ContactPhoneNumber']) && !empty($arr['ContactPhoneNumber']) ? $arr['ContactPhoneNumber'] : '', 'balance_impact' => '', 'income_type' => '', 'input_date' => $import_date, 'input_from_row' => $arr['InputFromRow'], 'paid_time' => '', 'remote_ip' => $arr['RemoteIp'], 'domain' => $arr['StoreId'], 'order_status' => isset($arr['PaymentStatus']) && $arr['PaymentStatus'] == 'Completed' ? $this->order_statuses['wait_for_confirmation'] : $this->order_statuses['wait_for_finance_confirmation']);
     foreach (explode(',', $data['sku_str']) as $sku) {
         if (!$this->product_model->fetch_product_id(strtoupper($sku)) || 1 == 1) {
             $data['order_status'] = $this->order_statuses['wait_for_confirmation'];
         }
     }
     //var_dump($item_titles);
     //var_dump($item_qties);
     return $data;
 }
 public function get_epacket_specification_print_lable_url($track_code)
 {
     //$product_mode = FALSE;
     $this->CI =& get_instance();
     $this->CI->load->config('config_epacket_specification');
     $ems_token = $this->CI->config->item('ems_token');
     $ems_url = $this->CI->config->item('ems_url');
     $ems_label_url = $this->CI->config->item('ems_label_url');
     $version = $this->CI->config->item('version');
     $orders = array($track_code);
     $xml = epacket_specification_print_lable($orders);
     $order_gateway_url = $ems_url . "print/batch/";
     var_dump($order_gateway_url);
     var_dump($xml);
     //var_dump(utf8_encode($xml));
     //die($order_gateway_url);
     /* 开始提交xml了 */
     $ch = curl_init();
     $header[] = "Content-type: text/xml";
     //定义content-type为xml
     $header[] = "version: " . $version;
     $header[] = "authenticate: " . $ems_token;
     curl_setopt($ch, CURLOPT_URL, $order_gateway_url);
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
     curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
     curl_setopt($ch, CURLOPT_POST, 1);
     curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
     $response = curl_exec($ch);
     if (curl_errno($ch)) {
         print curl_error($ch);
     }
     curl_close($ch);
     var_dump($response);
     $arr = parseNamespaceXml($response);
     $download_url = isset($arr['description']) ? $arr['description'] : '';
     $this->epacket_model->save_specification_download_url($download_url, $track_code);
     echo "starting confirm packet\n";
     $order = $this->epacket_model->get_specification_epacket_confirm_list_with_track_number($track_code);
     if (!isset($order->lable_download_url)) {
         return false;
     }
     $this->_print_label($order);
 }