分享自己写的关于顺丰同城配送的扩展包 | laravel china 社区-金年会app官方网
公司项目需要用到顺丰外卖,所以看了下有没有现成的扩展包可用,但是发现没有,官方也没有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 中使用也是同样的安装方式,
使用下面的命令来导出配置文件
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); } . . .
参考
license
mit
本作品采用《cc 协议》,转载必须注明作者和本文链接
                                
                                
                                    to live is to change the world
                                
                            
                        
                    
                      本帖由系统于 3年前 自动加精
            
 
 
666
这个是自己公司的餐饮app 的送货物流用顺丰的是吗
赞 : 1:
: 1:
插个眼
: 1: 已 star
mark