This is a courier api endpoints library for interacting such as e-courier, pathao etc
composer require xenon/multicourier
Then, publish the package
php artisan vendor:publish --provider=Xenon\MultiCourier\MultiCourierServiceProvider
Set .env configuration for individual couriers
PATHAO_CLIENT_SECRET="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
PATHAO_USERNAME="xxxx@example.com"
PATHAO_PASSWORD="xxxxxx"
PATHAO_GRANT_TYPE="password"
ECOURIER_API_KEY='xxx'
ECOURIER_API_SECRET='xxx'
ECOURIER_USER_ID='xxxx'
ECOURIER_ENVIRONMENT='xxxx'
Otherwise, if you want more control, you can use the underlying sender object. This will not touch any laravel facade or service provider.
use Xenon\MultiCourier\Provider\ECourier; use Xenon\MultiCourier\Courier; $courier = Courier::getInstance(); $courier->setProvider(ECourier::class, 'local'); /* local/production */ $courier->setConfig([ 'API-KEY' => 'xxx', 'API-SECRET' => 'xxxx', 'USER-ID' => 'xxxx', ]); $courier->setParams(['city'=>'Dhaka']); $thanas = $courier->getThanas(); //get thana $cities = $courier->getCities(); //get city
//place order use Xenon\MultiCourier\Provider\ECourier; use Xenon\MultiCourier\Courier; $courier = Courier::getInstance(); $courier->setProvider(ECourier::class, 'local'); /* local/production */ $courier->setConfig([ 'API-KEY' => 'xxx', 'API-SECRET' => 'xxx', 'USER-ID' => 'xxx', ]); $orderData = array( 'recipient_name' => 'XXXXX', 'recipient_mobile' => '017XXXXX', 'recipient_city' => 'Dhaka', 'recipient_area' => 'Badda', 'recipient_thana' => 'Badda', 'recipient_address' => 'Full Address', 'package_code' => '#XXXX', 'product_price' => '1500', 'payment_method' => 'COD', 'recipient_landmark' => 'DBBL ATM', 'parcel_type' => 'BOX', 'requested_delivery_time' => '2019-07-05', 'delivery_hour' => 'any', 'recipient_zip' => '1212', 'pick_hub' => '18490', 'product_id' => 'DAFS', 'pick_address' => 'Gudaraghat new mobile', 'comments' => 'Please handle carefully', 'number_of_item' => '3', 'actual_product_price' => '1200', 'pgwid' => 'XXX', 'pgwtxn_id' => 'XXXXXX' ); $courier->setParams($orderData); $response = $courier->placeOrder();
use Xenon\MultiCourier\Courier; use Xenon\MultiCourier\Provider\Pathao; $courier = Courier::getInstance(); $courier->setProvider(Pathao::class, 'local'); /* local/production */ $courier->setMethod('get'); $courier->setRequestEndpoint('cities/1/zone-list', []); //second param should be array. its optional. you should form params here $response = $courier->send();
- ECourier
- Pathao
We are continuously working in this open source library for adding more Bangladeshi courier companies. If you feel something
is missing then make a issue regarding that. Your can pull request to dev branch.
If you want to contribute in this library, then you are highly welcome to
do that....
read blog from here
https://dev.to/arif98741/bangladeshi-courier-company-api-integration-in-laravel-using-xenon-multicourier-package-4m12