|
|
|
@ -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 []; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|