xenon / multicourier
This is a courier api endpoints library for interacting such as e-courier, pathao, paperfly etc
Fund package maintenance!
Patreon
Installs: 1 700
Dependents: 0
Suggesters: 0
Security: 0
Stars: 20
Watchers: 3
Forks: 4
Open Issues: 0
Requires
- guzzlehttp/guzzle: ^6.3|^7.3
README
This is a courier api endpoints library for interacting such as e-courier, pathao etc
Installation
Step 1:
composer require xenon/multicourier
Step 2:
Then, publish the package
php artisan vendor:publish --provider=Xenon\MultiCourier\MultiCourierServiceProvider
Step 3:
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.
Sample Code Requesting to E-courier
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();
Sample Code Requesting to Pathao
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();
Available Methods to Interact with Provider's Api
getInstance()
getConfig()
setConfig()
getParams()
setParams()
getProvider()
setProvider()
getCities()
getThanas()
trackOrder()
trackChildOrder()
getPackages()
placeOrder()
cancelOrder()
cancelChildOrder()
fraudStatusCheck()
getAreas()
getPostCodes()
getBranches()
printLabel()
boostSms()
topupSms()
topTransactionStatus()
topupOtp()
Currently Supported Courier Gateways
- 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