物流服务--查询物流

我使用的是快递鸟的服务,因为查询物流每天有500次免费请求的就会
地址
在这里插入图片描述
但是,这个我要做的功能是快递查询,这里的快递查询是收费的,但是,他提供了沙箱调试,
在这里插入图片描述
里面生成的一些都是测试数据
在这里插入图片描述
调用后会生成数据
在这里插入图片描述
但是,在laravel中,怎么去调用它呢,其实,我觉得,最快的方法就是去下载它的demo
http://www.kdniao.com/documents-demo

下载PHP版的
在这里插入图片描述
然后去定义一个路由

//物流查询
$api->post('orders/{order}/express', [\App\Http\Controllers\Api\OrderController::class, 'express']);

然后,从它的demo中可以看出来,请请求它,大概分为两步
准备请求参数和发送请求

准备请求参数

$EBusinessID = 'test1731069';//商户ID
$AppKey = 'a85af963-830d-4cc5-ab55-3c2062c50340';//API key
$ReqUrl = 'http://www.kdniao.com/UserCenter/v2/SandBox/SandboxHandler.ashx?action=CommonExcuteInterface';//请求地址(如当前这个是沙箱地址)
//准备请求参数
// 组装应用级参数
$requestData = "{" .
"'CustomerName': ''," .
 "'OrderCode': ''," .
"'ShipperCode': 'YTO'," .
"'LogisticCode': 'YT00003618100'," .
"}";
$datas = array(
'EBusinessID' => $EBusinessID,
'RequestType' => '1002', //免费即时查询接口指令1002/在途监控即时查询接口指令8001/地图版即时查询接口指令8003
'RequestData' => urlencode($requestData),//加密
'DataType' => '2',
);
$datas['DataSign'] = $this->encrypt($requestData, $AppKey);

还有一个单独的加密函数

/**
 * 电商Sign签名生成
 * @param data 内容
 * @param ApiKey ApiKey
 * @return DataSign签名
 */
public function encrypt($data, $ApiKey)
{
    return urlencode(base64_encode(md5($data . $ApiKey)));
}

发送请求

//发送请求--laravel提供的
$result = Http::asForm()->post($ReqUrl, $datas);
//转换成json格式
$retData = json_decode(json_decode($result, true)['ResponseData'], true);
return $this->response->array($retData);

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小信啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值