steevenz/rajaongkir

高级 RajaOngkir API PHP 类

资助包维护!
Patreon
Open Collective

安装次数: 8,223

依赖者: 1

建议者: 0

安全性: 0

星标: 60

关注者: 4

分支: 39

开放问题: 2

类型:php-class

v2.2.7 2019-08-15 06:48 UTC

This package is auto-updated.

Last update: 2024-08-29 03:42:02 UTC


README

Scrutinizer Code Quality Build Status Latest Stable Version Total Downloads License

RajaOngkir API PHP 类库用于进行 RajaOngkir API 请求。

功能

  • 支持所有类型的 RajaOngkir 账户(Starter、Basic、Pro)。
  • 支持根据重量(克)和体积度量(p x l x t - 自动转换为克)获取运费。

安装

安装此库的最佳方法是使用 Composer

composer require steevenz/rajaongkir

支持安装的 PHP 框架

  1. O2System 框架
  2. Laravel 框架
  3. Yii 框架
  4. Symfony 框架
  5. CodeIgniter 框架

在其他框架或 PHP 原生上安装

require_once('path/to/steevenz/rajaongkir/src/autoload.php');

使用方法

use Steevenz\Rajaongkir;

/*
 * --------------------------------------------------------------
 * Inisiasi Class RajaOngkir
 *
 * Tipe account yang tersedia di RajaOngkir:
 * - starter (tidak support international dan metode waybill)
 * - basic
 * - pro
 *
 * @param string|array API Key atau konfigurasi dalam array
 * @param string Account Type (lowercase)
 * --------------------------------------------------------------
 */
 $rajaongkir = new Rajaongkir('API_KEY_ANDA', Rajaongkir::ACCOUNT_STARTER);
 
 // inisiasi dengan config array
 $config['api_key'] = 'API_KEY_ANDA';
 $config['account_type'] = 'starter';
 
 $rajaongkir = new Rajaongkir($config);

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh propinsi
 * --------------------------------------------------------------
 */
$provinces = $rajaongkir->getProvinces();

/*
 * --------------------------------------------------------------
 * Mendapatkan detail propinsi
 *
 * @param int Province ID
 * --------------------------------------------------------------
 */
$province = $rajaongkir->getProvince(1);

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh kota
 * --------------------------------------------------------------
 */
$cities = $rajaongkir->getCities();

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh kota di propinsi tertentu
 *
 * @param int Province ID (optional)
 * --------------------------------------------------------------
 */
$cities = $rajaongkir->getCities(1);

/*
 * --------------------------------------------------------------
 * Mendapatkan detail kota
 *
 * @param int City ID
 * --------------------------------------------------------------
 */
$city = $rajaongkir->getCity(1);

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh subdistrict dari kota tertentu
 *
 * @param int City ID (optional)
 * --------------------------------------------------------------
 */
$subdistricts = $rajaongkir->getSubdistricts(39);

/*
 * --------------------------------------------------------------
 * Mendapatkan detail subdistrict
 *
 * @param int Subdistrict ID 
 * --------------------------------------------------------------
 */
$subdistrict = $rajaongkir->getSubdistrict(537);

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh kota yang mendukung pengiriman
 * ke Internasional
 * (tidak tersedia untuk tipe account starter)
 * --------------------------------------------------------------
 */
$internationalOrigins = $rajaongkir->getInternationalOrigins();

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh kota yang mendukung pengiriman
 * ke Internasional di propinsi tertentu
 * (tidak tersedia untuk tipe account starter)
 *
 * @param int Province ID (optional)
 * --------------------------------------------------------------
 */
$internationalOrigins = $rajaongkir->getInternationalOrigins(6);

/*
 * --------------------------------------------------------------
 * Mendapatkan detail Origin Internasional
 * (tidak tersedia untuk tipe account starter)
 *
 * @param int City ID (optional)
 * @param int Province ID (optional)
 * --------------------------------------------------------------
 */
$internationalOrigin = $rajaongkir->getInternationalOrigin(152, 6);

/*
 * --------------------------------------------------------------
 * Mendapatkan list seluruh negara tujuan Internasional
 * (tidak tersedia untuk tipe account starter)
 * --------------------------------------------------------------
 */
$internationalDestinations = $rajaongkir->getInternationalDestinations();

/*
 * --------------------------------------------------------------
 * Mendapatkan detail tujuan Internasional
 * (tidak tersedia untuk tipe account starter)
 *
 * @param int Country ID
 * --------------------------------------------------------------
 */
$internationalDestination = $rajaongkir->getInternationalDestination(108);

/*
 * --------------------------------------------------------------
 * Mendapatkan harga ongkos kirim berdasarkan berat dalam gram
 *
 * @param array Origin 
 * @param array Destination
 * @param int|array Weight|Metrics
 * @param string Courier
 * --------------------------------------------------------------
 */
$cost = $rajaongkir->getCost(['city' => 501], ['subdistrict' => 574], 1000, 'jne');

/*
 * --------------------------------------------------------------
 * Mendapatkan harga ongkos kirim berdasarkan volume metrics
 * atau berdasarkan ukuran panjang x lebar x tinggi
 *
 * Catatan: 
 * Berat akan otomatis dihitung berdasarkan volume metrics.
 *
 * @param array Origin 
 * @param array Destination
 * @param int|array Weight|Metrics
 * @param string Courier
 * --------------------------------------------------------------
 */
$cost = $rajaongkir->getCost(['city' => 501], ['subdistrict' => 574],
                    [
                        'length' => 50,
                        'width'  => 50,
                        'height' => 50,
                    ], 'jne');

/*
 * --------------------------------------------------------------
 * Mendapatkan harga ongkos kirim berdasarkan berat dalam gram
 * atau berdasarkan ukuran panjang x lebar x tinggi
 *
 * Catatan: 
 * Jika ukuran menghasilkan berat yang lebih besar dari
 * berat yang didefinisikan, berat yang akan dipakai sebagai
 * kalkulasi ongkos kirim adalah berat berdasarkan volume metrics
 *
 * @param array Origin 
 * @param array Destination
 * @param int|array Weight|Metrics
 * @param string Courier
 * --------------------------------------------------------------
 */
 $cost = $rajaongkir->getCost(['city' => 501], ['subdistrict' => 574],
                     [
                         'weight' => 1000,
                         'length' => 50,
                         'width'  => 50,
                         'height' => 50,
                     ], 'jne');
                                        
/*
 * --------------------------------------------------------------
 * Mendapatkan harga ongkos kirim international berdasarkan berat 
 * dalam gram (tidak tersedia untuk tipe account starter)
 *
 * @param array Origin 
 * @param array Destination
 * @param int|array Weight|Metrics
 * @param string Courier
 * --------------------------------------------------------------
 */
$cost = $rajaongkir->getCost(['city' => 152], ['country' => 108], 1400, 'pos'); 

/*
 * --------------------------------------------------------------
 * Melacak status pengiriman
 *
 * @param string Receipt ID (Nomor Resi Pengiriman)
 * @param string Courier
 * --------------------------------------------------------------
 */
 $waybill = $rajaongkir->getWaybill('SOCAG00183235715', 'jne');
 
/*
 * --------------------------------------------------------------
 * Mendapatkan informasi nilai tukar rupiah terhadap US dollar.
 * --------------------------------------------------------------
 */
 $currency = $rajaongkir->getCurrency();
 
/*
 * --------------------------------------------------------------
 * Melakukan debugging errors.
 * --------------------------------------------------------------
 */
 if(false === ($waybill = $rajaongkir->getWaybill('SOCAG00183235715', 'jne'))) {
    print_out($rajaongkir->getErrors());
 }
 
/*
 * --------------------------------------------------------------
 * Mendapatkan daftar courier yang didukung oleh tipe akun anda
 * --------------------------------------------------------------
 */
 $supportedCouriers = $rajaongkir->getSupportedCouriers();
  
/*
 * --------------------------------------------------------------
 * Mendapatkan daftar way bill courier yang didukung oleh tipe akun anda
 * --------------------------------------------------------------
 */
 $supportedWayBills = $rajaongkir->getSupportedWayBills();

有关更详细的信息,请参阅 Wiki

想法、批评和建议

如果您有任何想法、批评或建议,您可以通过 steevenz@steevenz.com 发送电子邮件。您也可以访问我的个人网站 steevenz.com

错误和问题

如果您发现错误或问题,您可以在 Github Issues 上发布。

要求

参考

有关 RajaOngkir API 的更多信息,请参阅 RajaOngkir 文档