therour/rajaongkir-laravel

RajaOngkir API for Laravel 5

dev-master 2018-04-20 22:53 UTC

This package is auto-updated.

Last update: 2024-09-29 04:48:59 UTC


README

Raja Ongkir API Laravel 5

当前版本的 rajaongkir api for laravel 仅适用于 入门级 账户

安装

通过 Composer

composer require therour/rajaongkir-laravel

将服务提供者添加到你的 Laravel 项目的 config/app.php

'providers' => [
      ....
      
      Therour\RajaOngkir\RajaOngkirServiceProvider::class,
]

设置

在你的 Laravel 项目的 config/services.php 中添加你的凭证

....

'rajaongkir' => [
    'base_uri' => env('RAJAONGKIR_BASE_URI', 'https://api.rajaongkir.com'),
    'type' => env('RAJAONGKIR_type', 'starter'),
    'key' => env('RAJAONGKIR_API_KEY', null),
    'origin' => env('RAJAONGKIR_ORIGIN'), // if you have fixed origin city id,
]

缓存

此包还提供了对 RajaOngkir API 中可用的省份和城市的缓存,因此如果你的应用程序有缓存,则无需向 RajaOngkir 端点 API 发送请求。我们使用 cache('rajaongkir.provinces')cache('rajaongkir.cities') 键对这些进行缓存。

要启用省份和城市的缓存,请将以下代码添加到你的 app\Providers\AppServiceProvider.php

use Therour\RajaOngkir\Facades\RajaOngkir; 

class AppServiceProvider extends ServiceProvider
{

    public function boot()
    {
    	....

    	RajaOngkir::shouldCache($expire = 60); // cache expires in 60 minutes
    }

    ....
}

使用方法

使用 Facade

你需要将 RajaOngkir Facade 添加到你的 config/app.php 中的别名

'aliases' => [
      ....
      
      'RajaOngkir' => Therour\RajaOngkir\Facades\RajaOngkir::class,
]

通过 RajaOngkir 获取省份和城市

use RajaOngkir;


$provinces = RajaOngkir::getProvinces; // return array of Therour\RajaOngkir\Province Objects

$cities = RajaOngkir::getCities; // return array of Therour\RajaOngkir\Province Objects

$myProvince = RajaOngkir::getProvince($id); // return a Therour\RajaOngkir\Province

$citiesAroundMe = $myProvince->cities; // return array of Therour\RajaOngkir\City

计算运费

注意

代码

use RajaOngkir;


// get calculation with default origin by your application service config
$cost = RajaOngkir::calculate($destinationID, $weight, $courier);

// get calculation with defining another origin
$cost = RajaOngkir::from($originID)->calculate($destinationID, $weight, $courier);

// another way to calculate with JNE courier
$cost = RajaOngkir::from($originID)->to($destinationID)->withJne()->send($weight);

// another way to calculate with TIKI courier
$cost = RajaOngkir::from($originID)->to($destinationID)->withTiki()->send($weight);

// another way to calculate with POS courier
$cost = RajaOngkir::from($originID)->to($destinationID)->withPos()->send($weight);