所有分类
  • 所有分类
  • 织梦模板

一个顺丰同城配送的扩展包并在laravel

项目需要用到顺丰外卖,所以看了下有没有现成的扩展包可用,但是发现没有,官方也没有SDK,所以自己写了一个包,省了不少工作量。

安装

 <pre>$ composer require ycstar/sfopenic -vvv </pre>

配置

在使用本扩展之前,你需要去顺丰同城开放平台注册账号,然后申请开发者ID,获取相应的配置

使用

<pre>

use Ycstar\Sfopenic\Sfopenic;
$config = [
'host'    => 'xxxxxxxxxxxx',
'dev_id'  => 'xxxxxxxxxxxx',
'dev_key' => 'xxxxxxxxxxxx'
];
$sfopenic = new Sfopenic($config); </pre>

预创建订单

<pre>$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); </pre>

创建订单

<pre>$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); </pre>

取消订单

<pre>$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); </pre>

预取消订单

<pre>$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); </pre>

订单加小费

<pre>$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); </pre>

获取订单加小费信息

<pre>$data = [
'order_id' => 'xxxxxxxxxxxx',
'order_type' => 1 //1、顺丰订单号 2、商家订单号
'shop_id' => 0,
'shop_type' => 1, //1、顺丰店铺ID 2、接入方店铺ID
];

$res = $sfopenic->getOrderGratuityFee($data); </pre>

订单状态流查询

<pre>$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); </pre>

订单实时信息查询

<pre>$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); </pre>

催单

<pre>$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); </pre>

改单

<pre>$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); </pre>

获取配送员实时坐标接口

<pre>$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); </pre>

获取配送员轨迹H5

<pre>$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); </pre>

订单回调详情

<pre>$data = [
'order_id' => 'xxxxxxxxxxxx',
'order_type' => 1 //1、顺丰订单号 2、商家订单号
'shop_id' => 0,
'shop_type' => 1, //1、顺丰店铺ID 2、接入方店铺ID
];

$res = $sfopenic->getCallbackInfo($data); </pre>

获取回调数据及回复内容

<pre>$data = $sfopenic->getNotify();
.
.
.
return $sfopenic->getNotifySuccessReply(); </pre>

在laravel中使用

在 Laravel 中使用也是同样的安装方式,使用下面的命令来导出配置文件

php artisan vendor:publish --tag="ycstar-sfopenic"
配置写在 config/sfopenic.php 中:

<pre>return [
'host' => env('SF_OPENIC_HOST'),
'dev_id' => env('SF_OPENIC_DEV_ID'),
'dev_key' => env('SF_OPENIC_DEV_KEY')
]; </pre>
然后在 .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 实例:

方法参数注入

<pre>...
public function preCreateOrder(Sfopenic $sfopenic)
{
$res = $sfopenic->preCreateOrder($data);
}
...

服务名访问

...
public function preCreateOrder()
{
$res = app('sfopenic')->preCreateOrder($data);
}
... </pre>

常见问题
所有VIP可以商用吗,会不会有版权问题?
本站提供的源码大部分可以作为源码开发参考和学习,部分开源可商用。
账号可以分享给其他人使用吗?
您好,账号禁止共享,我们有验证机制的,会自动封号处理,谢谢配合。
如果遇到问题怎么联系解决呢?
最快的途径是在导航菜单选择提交【售后】会在24小时处理
下载的源码可以使用吗?
我们会在显著的地方表明【已测试】,显示已测试的都是小编测试过 。
1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
5.如有侵权请联系客服邮件770973008@qq.com
原文链接:https://www.56admin.com/19356.html,转载请注明出处。
0
分享海报

评论0

请先
九年老站,质量有保证,90%亲自测试!优惠原价199模板币终生SVIP,优惠价68模板币! 数量有限! 购买SVIP 所有资源免积分下载,畅享无忧!
显示验证码
没有账号?注册  忘记密码?