公司项目需要用到顺丰外卖,所以看了下有没有现成的扩展包可用,但是发现没有,官方也没有sdk,所以自己写了一个包,省了不少工作量。
安装$ composer require ycstar/sfopenic -vvv
配置在使用本扩展之前,你需要去顺丰同城开放平台注册账号,然后申请开发者id,获取相应的配置
使用 use ycstar\sfopenic\sfopenic; $config = [ 'host' => 'xxxxxxxxxxxx', 'dev_id' => 'xxxxxxxxxxxx', 'dev_key' => 'xxxxxxxxxxxx' ]; $sfopenic = new sfopenic($config);
预创建订单 $data = [ 'shop_id' => 'xxxxxxxxxxxx', 'user_address' => 北京市海淀区学清嘉创大厦a座15层, 'user_lng' => '116.352569', 'user_lat' => '40.014838', 'weight' => 100, 'product_type' => 1, 'pay_type' => 1, 'is_appoint' => 0, 'is_insured' => 0, 'is_person_direct' => 0 ]; $res = $sfopenic->precreateorder($data);
创建订单 $array = [ 'shop_id' => 'xxxxxxxxxxxx', 'shop_order_id' => 'xxxxxxxxxxxx', 'order_source' => 'xx', 'pay_type' => 1, 'order_time' => time(), 'is_appoint' => 0, 'is_insured' => 0, 'is_person_direct' => 0, 'version' => 17, 'order_sequence' => 'xx', 'remark' => 'xx' ]; $receive =[ 'user_name' => xx, 'user_phone' => xxxxxxxxxx, 'user_address' => 北京市海淀区学清嘉创大厦a座15层, 'user_lng' => '116.352569', 'user_lat' => '40.014838', ]; $order_detail = [ 'total_price' => 1,//总金额 'product_type' => 1, //物品类型 1:送餐 8:饮品 'weight_gram' => 100,//物品重量 'product_num' => 3,//物品个数 'product_type_num' => 1,//物品种类个数 ]; $product_detail[]=[ 'product_name'=>'xxx',//物品名称 'product_num' => 1,//物品数量 ]; $order_detail['product_detail'] = $product_detail; $array['order_detail'] = $order_detail; $array['receive'] = $receive; $res = $sfopenic->createorder($data);
取消订单 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id 'cancel_code' => 313, //不填时默认cancel_code=313,cancel_reason=商家发起取消 'cancel_reason' => '' ]; $res = $sfopenic->cancelorder($data);
预取消订单 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id 'cancel_reason' => '' ]; $res = $sfopenic->precancelorder($data);
订单加小费 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id 'gratuity_fee' => 0 ]; $res = $sfopenic->addordergratuityfee($data);
获取订单加小费信息 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->getordergratuityfee($data);
订单状态流查询 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->listorderfeed($data);
订单实时信息查询 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->getorderstatus($data);
催单 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->reminderorder($data);
改单 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id 'user_name'=> '', 'user_phone'=> '', 'user_address'=> '', 'lbs_type'=> 2, //1:百度坐标,2:高德坐标(默认值为2,下面的经纬度依赖这个坐标系,不传默认高德) 'user_lng'=> '', //传入用户地址经纬度顺丰侧则不根据用户地址解析 'user_lat'=> '', ]; $res = $sfopenic->changeorder($data);
获取配送员实时坐标接口 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->riderlatestposition($data);
获取配送员轨迹h5 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, //order_type=2时必传shop_id与shop_type 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->riderviewv2($data);
订单回调详情 $data = [ 'order_id' => 'xxxxxxxxxxxx', 'order_type' => 1 //1、顺丰订单号 2、商家订单号 'shop_id' => 0, 'shop_type' => 1, //1、顺丰店铺id 2、接入方店铺id ]; $res = $sfopenic->getcallbackinfo($data);
获取回调数据及回复内容 $data = $sfopenic->getnotify(); . . . return $sfopenic->getnotifysuccessreply();
在laravel中使用
在 laravel 中使用也是同样的安装方式,【推荐:《laravel教程》】
使用下面的命令来导出配置文件
php artisan vendor:publish --tag=ycstar-sfopenic
配置写在 config/sfopenic.php 中:
return [ 'host' => env('sf_openic_host'), 'dev_id' => env('sf_openic_dev_id'), 'dev_key' => env('sf_openic_dev_key') ];
然后在 .env 中配置 sf_openic_host, sf_openic_dev_id, sf_openic_dev_key:
sf_openic_host = xxxxxxxxxxxx sf_openic_dev_id = xxxxxxxxxxxx sf_openic_dev_key = xxxxxxxxxxxx
可以用两种方式来获取 ycstar\sfopenic\sfopenic 实例:
方法参数注入 . . . public function precreateorder(sfopenic $sfopenic) { $res = $sfopenic->precreateorder($data); } . . .
服务名访问 . . . public function precreateorder() { $res = app('sfopenic')->precreateorder($data); } . . .
相关推荐:最新的五个laravel视频教程 以上就是分享一个顺丰同城配送的扩展包并在laravel中使用的详细内容。