123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
- class Model_Taxzhengzhou extends Lin_Model
- {
- function __construct(){
- parent::__construct();
- $this->load->database();
- $this->table = 'taxzhengzhou';
- $this->load_table('tax_zhengzhou');
- }
- public function get_ht($ht)
- {
- return $this->find("ht = '$ht'");
- }
- public function get_orderno($orderno)
- {
- return $this->find("orderno = '$orderno'");
- }
- public function get_orders($data)
- {
- $xmend = "\n";
- //需要加密的报文
- $dataInfo = '<?xml version="1.0" encoding="UTF-8"?>'.$xmend;
- $dataInfo = '<order>'.$xmend;
- $dataInfo = '<orderHead>'.$xmend;
- $dataInfo = '<orderType>'.$data['ordertype'].'</orderType>'.$xmend;//电商平台的订单类型 I-进口商品订单;E-出口商品订单
- $dataInfo = '<tradeMode>'.$data['trademode'].'</tradeMode>'.$xmend;//一般出口填9610,特殊区域出口填1210
- $dataInfo = '<statisticsFlag>'.$data['statisticsflag'].'</statisticsFlag>'.$xmend;//A-简化申报.$xmend;B-汇总申报;
- $dataInfo = '<emsNo>'.$data['emsno'].'</emsNo>'.$xmend;//特殊区域出口模式必须填写具体账号(1210必填)。
- $dataInfo = '<orderNo>'.$data['orderno'].'</orderNo>'.$xmend;//电商平台的交易订单编号,同一平台的订单编号唯一不重复
- $dataInfo = '<ebpCode>'.$data['ebpcode'].'</ebpCode>'.$xmend;//电商平台的海关注册登记编号或统一社会信用代码。
- $dataInfo = '<logisticsCode>'.$data['logisticscode'].'</logisticsCode>'.$xmend;//物流企业的海关注册登记编号或统一社会信用代码。
- $dataInfo = '<iacCode>'.$data['iaccode'].'</iacCode>'.$xmend;//特殊区域内仓储企业的海关注册登记编号或统一社会信用代码,特殊区域出口模式必填
- $dataInfo = '<agentCode>'.$data['agentcode'].'</agentCode>'.$xmend;//代理申报企业编号
- $dataInfo = '<payCode>'.$data['paycode'].'</payCode>'.$xmend;//支付企业的海关编码,国内企业必填。
- $dataInfo = '<payName>'.$data['payname'].'</payName>'.$xmend;//支付企业名称,非线上支付填"现金支付"
- $dataInfo = '<ownerCode>'.$data['ownercode'].'</ownerCode>'.$xmend;//生产企业的海关注册登记编号或统一社会信用代码,未在海关登记的填NO
- $dataInfo = '<ownerName>'.$data['ownername'].'</ownerName>'.$xmend;//生产企业的登记名称
- $dataInfo = '<preNo>'.$data['preno'].'</preNo>'.$xmend;//电子口岸标识唯一编号(B+8位年月日+9位流水号)
- $dataInfo = '<licenseNo>'.$data['licenseno'].'</licenseNo>'.$xmend;//商务主管部门及其授权发证机关签发的进出口货物许可证的编号
- $dataInfo = '<portCode>'.$data['portcode'].'</portCode>'.$xmend;//商品实际出我国关境口岸海关的关区代码 JGS/T 18《海关关区代码》
- $dataInfo = '<ieDate>'.$data['iedate'].'</ieDate>'.$xmend;//时间格式:YYYYMMDD
- $dataInfo = '<batchNumber>'.$data['batchnumber'].'</batchNumber>'.$xmend;//商品批次号
- $dataInfo = '<wrapType>'.$data['wraptype'].'</wrapType>'.$xmend;//海关对进出口货物实际采用的外部包装方式的标识代码,采用1位数字表示,如:木箱、纸箱、桶装、散装、托盘、包、油罐车等
- $dataInfo = '<packNo>'.$data['packno'].'</packNo>'.$xmend;//件数(包裹数量)
- $dataInfo = '<grossWeight>'.$data['grossweight'].'</grossWeight>'.$xmend;//货物及其包装材料的重量之和,计量单位为千克
- $dataInfo = '<netWeight>'.$data['netweight'].'</netWeight>'.$xmend;//货物的毛重减去外包装材料后的重量,即货物本身的实际重量,计量单位为千克
- $dataInfo = '<goodsValue>'.$data['goodsvalue'].'</goodsValue>'.$xmend;//商品实际成交价FOB(不含运杂费),含非现金抵扣金额
- $dataInfo = '<discount>'.$data['discount'].'</discount>'.$xmend;//无则填写"0"
- $dataInfo = '<taxTotal>'.$data['taxtotal'].'</taxTotal>'.$xmend;//按照货款金额计算的税款,无法提供填写"0"
- $dataInfo = '<charge>'.$data['charge'].'</charge>'.$xmend;//支付企业的订单交易金额
- $dataInfo = '<freight>'.$data['freight'].'</freight>'.$xmend;//运杂费,无则填写"0"。
- $dataInfo = '<fFlag>'.$data['fflag'].'</fFlag>'.$xmend;//1-率,2-单价,3-总价
- $dataInfo = '<insuredFee>'.$data['insuredfee'].'</insuredFee>'.$xmend;//物流企业实际收取的商品保价费用
- $dataInfo = '<iFlag>'.$data['iflag'].'</iFlag>'.$xmend;//1-率,2-单价,3-总价
- $dataInfo = '<consigneeName>'.$data['consigneename'].'</consigneeName>'.$xmend;//收货人名称
- $dataInfo = '<consigneeTel>'.$data['consigneetel'].'</consigneeTel>'.$xmend;//收货人电话
- $dataInfo = '<consigneeAddress>'.$data['consigneeaddress'].'</consigneeAddress>'.$xmend;//收货人地址
- $dataInfo = '<trafMode>'.$data['trafmode'].'</trafMode>'.$xmend;//海关标准的参数代码 《JGS-20 海关业务代码集》- 运输方式代码
- $dataInfo = '<country>'.$data['country'].'</country>'.$xmend;//出口货物的直接运抵的国家(地区),《JGS-20 海关业务代码集》 国家(地区)代码表填写代码。
- $dataInfo = '<pod>'.$data['pod'].'</pod>'.$xmend;//出口运往境外的最终目的港的标识代码。最终目的港不可预知时,应尽可能按预知的目的港填报
- $dataInfo = '<logisticsNo>'.$data['logisticsno'].'</logisticsNo>'.$xmend;//物流企业运单的包裹面单号,同一物流企业的运单编号在6个月内不重复。
- $dataInfo = '<trafName>'.$data['trafname'].'</trafName>'.$xmend;//货物进出境的运输工具的名称或运输工具编号。填报内容应与运输部门向海关申报的载货清单所列相应内容一致。按照关区要求,可以后置申报清单总分单,允许为空。
- $dataInfo = '<voyageNo>'.$data['voyageno'].'</voyageNo>'.$xmend;//货物进出境的运输工具的航次编号。按照关区要求,可以后置申报清单总分单,允许为空。
- $dataInfo = '<billNo>'.$data['billno'].'</billNo>'.$xmend;//提单或总运单的编号。按照关区要求,可以后置申报清单总分单,允许为空。
- $dataInfo = '<totalPackageNo>'.$data['totalpackageno'].'</totalPackageNo>'.$xmend;//对于提运单下含有多个大包的托盘编号(邮件为邮件总包号/邮袋号)。按照关区要求,可以后置申报清单总分单,允许为空。
- $dataInfo = '<payNo>'.$data['payno'].'</payNo>'.$xmend;//支付交易编号
- $dataInfo = '<accountingDate>'.$data['accountingdate'].'</accountingDate>'.$xmend;//到账时间 格式:YYYYMMDDhhmmss
- $dataInfo = '<currencycus>'.$data['currencycus'].'</currencycus>'.$xmend;//海关标准的参数代码 《JGS-20 海关业务代码集》- 货币代码
- $dataInfo = '<currencyciq>'.$data['currencyciq'].'</currencyciq>'.$xmend;//币制编号,国检标准参数代码-币种
- $dataInfo = '<note>'.$data['note'].'</note>'.$xmend;
- $dataInfo = '</orderHead>'.$xmend;
- $dataInfo = '<orderList>'.$xmend;
- $dataInfo = '<gnum>'.$data['gnum'].'</gnum>'.$xmend;//从1开始的递增序号(与清单的商品项关联对应)
- $dataInfo = '<itemNo>'.$data['itemno'].'</itemNo>'.$xmend;//企业自定义的商品货号
- $dataInfo = '<itemRecordNo>'.$data['itemrecordno'].'</itemRecordNo>'.$xmend;//保税出口模式必填
- $dataInfo = '<itemName>'.$data['itemname'].'</itemName>'.$xmend;//同一类商品的中文名称。任何一种具体商品可以并只能归入表中的一个条目
- $dataInfo = '<gcode>'.$data['gcode'].'</gcode>'.$xmend;//对于符合简化申报的商品,前4位按税则归类申报(需要存在相应章节)
- $dataInfo = '<itemDescribe>'.$data['itemdescribe'].'</itemDescribe>'.$xmend;//电商平台上架的商品描述宣传信息
- $dataInfo = '<gmodel>'.$data['gmodel'].'</gmodel>'.$xmend;//满足海关归类、审价以及监管的要求为准。包括:品名、牌名、规格、型号、成份、含量、等级等
- $dataInfo = '<barCode>'.$data['barcode'].'</barCode>'.$xmend;//商品条形码一般由前缀部分、制造厂商代码、商品代码和校验码组成。没有条形码填“无”
- $dataInfo = '<qty>'.$data['qty'].'</qty>'.$xmend;
- $dataInfo = '<qty1>'.$data['qty1'].'</qty1>'.$xmend;
- $dataInfo = '<qty2>'.$data['qty2'].'</qty2>'.$xmend;
- $dataInfo = '<unitcus>'.$data['unitcus'].'</unitcus>'.$xmend;//海关标准的参数代码 《JGS-20 海关业务代码集》- 计量单位代码
- $dataInfo = '<unitciq>'.$data['unitciq'].'</unitciq>'.$xmend;//计量单位编号
- $dataInfo = '<unit1>'.$data['unit1'].'</unit1>'.$xmend;//海关标准的参数代码 《JGS-20 海关业务代码集》- 计量单位代码
- $dataInfo = '<unit2>'.$data['unit2'].'</unit2>'.$xmend;//海关标准的参数代码 《JGS-20 海关业务代码集》- 计量单位代码
- $dataInfo = '<price>'.$data['price'].'</price>'.$xmend;//成交单价FOB
- $dataInfo = '<totalPrice>'.$data['totalprice'].'</totalPrice>'.$xmend;//总价=成交数量*单价
- $dataInfo = '<currencycus>'.$data['currencycus'].'</currencycus>'.$xmend;//####海关标准的参数代码 海关标准的参数代码 《JGS-20 海关业务代码集》- 货币代码
- $dataInfo = '<country>'.$data['country'].'</country>'.$xmend;//#####海关标准的参数代码《JGS-20 海关业务代码集》 国家(地区)代码表填写代码。
- $dataInfo = '<note>'.$data['note'].'</note>'.$xmend;//#####
- $dataInfo = '</orderList>'.$xmend;
- $dataInfo = '</order>'.$xmend;
-
- $abs_path = './data/caiwu/rsa_public_key.key';
- $content = file_get_contents($abs_path);
- $key = openssl_pkey_get_public($content);
- openssl_public_encrypt($dataInfo,$encrypted,$key);
- $encrypted = base64_encode($encrypted);
- $byteArray = unpack('C*',$encrypted);
- //请求信息
- $xml = '<?xml version="1.0" encoding="UTF-8"?>'.$xmend;
- $xml .= '<root>'.$xmend;
- $xml .= '<pubInfo>'.$xmend;
- $xml .= '<version>'.$data['version'].'</version>'.$xmend;//Webservice接口版本2.0
- $xml .= '<companyCode>'.$data['companycode'].'</companyCode>'.$xmend;//电商企业的海关注册登记编号或统一社会信用代码
- $xml .= '<appType>'.$data['apptype'].'</appType>'.$xmend;//企业报送类型。1-新增 2-变更 3-删除。
- $xml .= '<appStatus>'.$data['appstatus'].'</appStatus>'.$xmend;//企业报送状态。1-暂存,2-申报。默认申报
- $xml .= '<signature>'.md5(implode('',$byteArray)).'</signature>'.$xmend;//验证加密报文是否一致
- $xml .= '<createTime>'.$data['createtime'].'</createTime>'.$xmend;//单据生成日期,格式:YYYYMMDDhhmmss。
- $xml .= '<customCode>'.$data['customcode'].'</customCode>'.$xmend;//关区代码(郑州保税区4611)
- $xml .= '</pubInfo>'.$xmend;
- $xml .= '<dataInfo>'.$encrypted.'</dataInfo>'.$xmend;//订单报文信息加密后内容
- $xml .= '</root>'.$xmend;
- $xml = 'xml='.$xml;
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL,'http://emy.hnblc.com:9955/etouch-export/export/order/pushOrder');
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $data = curl_exec($ch);
- curl_close($ch);
- //$data = utf8_encode($data);
- libxml_disable_entity_loader(true);
- @$values = json_decode(json_encode(simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
- return $values;
- }
-
- public function stringToByteArray($str,$charset) {
-
- $str = iconv($charset,'UTF-16',$str);
- preg_match_all('/(.)/s',$str,$bytes); //注:本文的盗版已经有了。不过,提示一下读者,这里的正则改了。
- $bytes=array_map('ord',$bytes[1]) ;
- return $bytes;
-
- }
- } //end class
|