lqmac 11 months ago
parent 6767edff46
commit 56a190089e
  1. 7
      app/common/model/Goods.php
  2. 101
      app/common/service/Suning.php

@ -505,7 +505,12 @@ class Goods extends BaseModel
if (isset($param['goods_source']) && $param['goods_source'] !== '') {
$filter[] = ['goods.goods_source', '=', $params['goods_source']];
}
if (isset($param['is_has_banner']) && $param['is_has_banner'] !== '') {
$filter[] = ['goods.is_has_banner', '=', $params['is_has_banner']];
}
if (isset($param['is_has_detail']) && $param['is_has_detail'] !== '') {
$filter[] = ['goods.is_has_detail', '=', $params['is_has_detail']];
}
// 实例化新查询对象
return $query->where($filter);
}

@ -15,6 +15,8 @@ require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/Passpartproduc
require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/FulladdressGetRequest.php');
require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/ListpagepriceQueryRequest.php');
require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/ShoppingcartpriceQueryRequest.php');
require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/OrderAddRequest.php');
require_once(root_path() .'/extend/suning-sdk-php/request/sngoods/OrderstatusGetRequest.php');
use app\api\model\{Goods as GoodsModel, Store as StoreModel};
/**
* 苏宁服务
@ -248,4 +250,103 @@ class Suning extends BaseService {
return [];
}
/**
* 下单
* [createOrder description]
* @param [type] $order [description]
* @param [type] $order_address [description]
* @param [type] $orderGoods [description]
* @param array $invoice [description]
* @return [type] [description]
*/
public function createOrder($order, $order_address, $orderGoods, $invoice = []){
$req = new \OrderAddRequest();
$req -> setChannelcode($this->_channel_code);
$req -> setTradeNo($order['order_no']);
//收货地址
$req -> setReceiverName($order_address['name']);
//$req -> setTelephone("010-84728989");
$req -> setMobile($order_address['phone']);
$req -> setProvinceId($order_address['province_id']);
$req -> setCityId($order_address['city_id']);
$req -> setCountyId($order_address['region_id']);
//$req -> setTownId("03");
$req -> setAddress($order_address['detail']);
$req -> setHopeArrivalTime("2019-11-06-3");
//订单金额
$req -> setPayment("支付方式:01-在线支付-易付宝; 02-企业汇款支付; 03-代扣支付;04-代扣分步支付");
$req -> setAmount($order['total_price']);
$req -> setServFee(0);
$req -> setRemark("备注(不多于80个汉字)");
//是否开票
$req -> setInvoiceState("是否开发票:1=开;0=不开");
$req -> setInvoiceType("发票类型:1-增值税专票;;2-电子发票 ,(invoiceState是否开票=1时必填)");
$req -> setInvoiceTitle("发票抬头(发票类型为2电子发票时必传)");
//订单商品sku
$skus = [];
foreach ($orderGoods as $item) {
$sku = new \Sku();
$sku-> setNum($item['total_num']);
$sku-> setSkuId($item['goods_no']);
$sku-> setSupplierCode($item['supplier_code']);
$sku-> setUnitPrice($item['goods_price']);
$skus[] = $sku;
}
$req -> setSku(array($sku));
//开票信息
// $specialVatTicket= new \SpecialVatTicket();
// $specialVatTicket-> setConsigneeAddress("收票件人地址(发票类型为1增值税专票必传)");
// $specialVatTicket-> setConsigneeMobileNum("收票件人电话(发票类型为1增值税专票必传)");
// $specialVatTicket-> setConsigneeName("收票件人姓名(发票类型为1增值税专票必传)");
// $specialVatTicket-> setRegAccount("23235254664336");
// $specialVatTicket-> setRegAdd("江苏省南京市雨花区软件大道舜天集团");
// $specialVatTicket-> setRegBank("453453434534354");
// $specialVatTicket-> setRegTel("18767890345");
// $specialVatTicket-> setTaxNo("纳税人识别号:数字或字母,字段长度为15、18、20位 ");
// $req -> setSpecialVatTicket($specialVatTicket);
//api入参校验逻辑开关,当测试稳定之后建议设置为 false 或者删除该行
$req -> setCheckParam('true');
$client = new \DefaultSuningClient($this->_domain, $this->_app_key,$this->_app_secrect,'json');
$resp = $this->_client->execute($req);
$data = json_decode($resp, true);
print_r("返回响应报文:".$resp);
if (isset($data['sn_responseContent']['sn_body']['addOrder']) && $data['sn_responseContent']['sn_body']['addOrder']) {
return $data['sn_responseContent']['sn_body']['addOrder'];
}
return [];
}
/**
* 获取订单状态
* [getOrderStatus description]
* @param [type] $order_no [description]
* @return [type] [description]
*/
public function getOrderStatus($order_no){
$req = new \OrderstatusGetRequest();
$req -> setOrderId($order_no);
//api入参校验逻辑开关,当测试稳定之后建议设置为 false 或者删除该行
$req -> setCheckParam('true');
$client = new \DefaultSuningClient($this->_domain, $this->_app_key,$this->_app_secrect,'json');
$resp = $this->_client->execute($req);
$data = json_decode($resp, true);
print_r("返回响应报文:".$resp);
if (isset($data['sn_request']['sn_body']['getOrderstatus']) && $data['sn_request']['sn_body']['getOrderstatus']) {
return $data['sn_request']['sn_body']['getOrderstatus'];
}
return [];
}
}

Loading…
Cancel
Save