واحدهایی مشخص در کد.
وزن را با گرم و ابعاد را با میلیمتر مشخص کنید و برای مبلغ از Amount استفاده کنید. نشانی و بسته، اشیایی با ساختار مشخص دارند.
نشانی و بستهسرویسهای حملونقل ایران را به برنامه PHP خود وصل کنید. با یک رابط مشترک، هزینه را بگیرید، مرسوله را ثبت کنید و وضعیت آن را دنبال کنید.
composer require eram/ersal:^0.2@betaDEMO-1042ShipmentInterfaceپیش از فرستادن بسته
chargeableWeightGrams()در این نمونه، وزن واقعی از وزن حجمی بیشتر است.
use Eram\Ersal\Address\Parcel;
$parcel = new Parcel(
weightGrams: 1500,
lengthMm: 300,
widthMm: 200,
heightMm: 100,
);
$parcel->volumetricWeightGrams(); // 1200
$parcel->chargeableWeightGrams(); // 1500chargeableWeightGrams()وزن واقعی هنوز ۱.۵ کیلوگرم است، اما حجم جعبه وزن محاسبهشده را بیشتر میکند.
use Eram\Ersal\Address\Parcel;
$parcel = new Parcel(
weightGrams: 1500,
lengthMm: 400,
widthMm: 300,
heightMm: 300,
);
$parcel->volumetricWeightGrams(); // 7200
$parcel->chargeableWeightGrams(); // 7200محاسبه با تابع Parcel در ارسال و ضریب ثابت ۵۰۰۰ انجام شده است. این عدد، قیمت یا وزن قطعی مبنای محاسبه شرکت حملونقل نیست؛ قواعد سرویس را بررسی کنید. دکمهها خروجی ذخیرهشده PHP را نشان میدهند.
از سفارش تا رهگیری
پاسخ شبیهسازیشده برای سرویس عادی؛ این مبلغ، تعرفه فعلی تیپاکس نیست.
use Eram\Ersal\Request\QuoteRequest;
$quotes = $provider->quote(new QuoteRequest(
origin: $origin,
destination: $destination,
parcel: $parcel,
));
$quotes[0]->cost->inToman(); // 85000 (fixture)شناسه مرسوله و نام سرویس را همراه سفارش ذخیره کنید. ثبت مرسوله انجام شده و تحویل، مرحله دیگری است.
bookeduse Eram\Ersal\Request\BookingRequest;
$shipment = $provider->createShipment(new BookingRequest(
origin: $origin,
destination: $destination,
parcel: $parcel,
orderId: 'DEMO-1042',
serviceLevel: $quotes[0]->serviceLevel,
quoteId: $quotes[0]->quoteId,
));
$shipment->getTrackingCode(); // 'DEMO-1042'bookedpicked_upin_transitپاسخ on_the_way به in_transit تبدیل میشود. برای دریافت وضعیت تازه، track() را فراخوانی کنید؛ این نمونه رهگیری زنده نیست.
$tracked = $provider->track($shipment->getId());
$tracked->getStatus()->value; // 'in_transit'
foreach ($tracked->getHistory() as $event) {
$event->at;
$event->status->value;
$event->raw; // original carrier event
}اطلاعات حساب سرویس را در سرور تنظیم کنید. مراحل بالا از این اشیا استفاده میکنند؛ درخواست واقعی به مشخصات معتبر گیرنده و توکن خودتان نیاز دارد.
use Eram\Ersal\Ersal;
use Eram\Ersal\Provider\Tipax\TipaxConfig;
use Eram\Ersal\Address\{Address, Parcel};
$provider = (new Ersal())->create('tipax',
new TipaxConfig(token: $yourToken)
);
// Replace these sample addresses with real order details.
$origin = new Address(
'Demo', 'Shop', '09000000000',
'تهران', 'تهران', 'نشانی نمونه'
);
$destination = new Address(
'Demo', 'Recipient', '09000000000',
'فارس', 'شیراز', 'نشانی نمونه'
);
$parcel = new Parcel(
weightGrams: 1500,
lengthMm: 300, widthMm: 200, heightMm: 100,
);این نمونه با Ersal 0.2.0-beta.2 و پاسخ HTTP شبیهسازیشده اجرا شده است. قیمت، نشانی و اطلاعات رهگیری همگی نمونهاند. این صفحه با شرکت حملونقل ارتباطی ندارد و مرسولهای ثبت نمیکند.
هفت رابط با امکانات متفاوت
posttipaxchaparmahexamadastمتدهای اصلی ارسال
payganalopeykاین امکانات مربوط به رابطهای پیادهسازیشده در همین نسخه کتابخانهاند. فعال بودن آنها برای حساب شما یا دسترسی فعلی API را تضمین نمیکنند. راهنمای سرویس را بخوانید و اتصال را با حساب خودتان آزمایش کنید.
وزن را با گرم و ابعاد را با میلیمتر مشخص کنید و برای مبلغ از Amount استفاده کنید. نشانی و بسته، اشیایی با ساختار مشخص دارند.
نشانی و بستهکلاینت HTTP، ثبتکننده لاگ یا مدیریت رویداد خودتان را به کتابخانه بدهید. از PHP ساده یا فریمورک فعلی خود استفاده کنید.
ارتباط HTTP و لاگبرنامه شما مرسولهها را ذخیره میکند و زمان استعلام را تعیین میکند. ارسال، وضعیت و تاریخچه را برمیگرداند؛ پردازش وبهوک در این نسخه پیاده نشده است.
راهنمای رهگیرینسخه بتا را نصب کنید، یک سرویس را تنظیم کنید و پیش از استفاده برای سفارش مشتری، مسیر کامل ارسال را با حساب خودتان آزمایش کنید.