imagina/icurrency-module

此模块管理货币和转换

安装: 451

依赖项: 3

建议者: 0

安全: 0

星级: 0

观察者: 5

分支: 6

公开问题: 0

类型:asgard-module

1.0.6 2020-02-19 14:36 UTC

This package is auto-updated.

Last update: 2024-09-28 18:26:42 UTC


README

安装

composer require imagina/icurrency

php artisan module:migrate Icurrency

php artisan db:seed --class=\\Modules\\Icurrency\\Database\\Seeders\\CurrencyTableSeederTableSeeder

acms/app/Http/Kernel.php中添加中间件

  protected $middleware = [
    // ...
      \Modules\Icurrency\Http\Middleware\CurrencyMiddleware::class,
    // ...
  ];

注意:此中间件期望在对象内部或从请求过滤器对象中获取货币配置。例如: api/iquote/v1/products?setting={"currency":"COP"}api/iquote/v1/products?filter={"currency":"COP"},'settings' 的优先级更高。

acms/app/Console/Kernel.php中添加更新TRM的命令

  protected $commands = [
    // ...
      Modules\Icurrency\Console\UpdateCurrencies::class
    // ...
  ];

在.env中添加你的Api Key

在你的currencyconverterapi获取你的api key

免费外汇API速率限制
每个请求的货币对:2
每小时请求次数:100

CURRCONV_APIKEY=apikye

首次迁移后运行以下命令以同步当前汇率下的货币,之后它们将通过cron job自动更新。

php artisan currencies:update

acms/app/Console/Kernel.php中添加命令到Laravel调度

  protected function schedule(Schedule $schedule)
  {
    // ...
    $schedule->command(Modules\Icurrency\Console\UpdateCurrencies::class)->dailyAt('01:00');
    // ...
  }

默认货币可用

使用外观货币

在你的需要使用此外观的类上添加以下行

use Modules\Icurrency\Support\Facades\Currency;

可用方法

  • 转换值

      /* Example */
      Currency::convert(1000): 
  • 将一个货币转换为另一个货币的值

      /* Example */
      Currency::convertFromTo(1000, 'COP', 'AUD');
  • 获取当前货币

      /* Example */
      Currency::getLocaleCurrency();
  • 设置当前货币

      /* Example */
      Currency::setLocaleCurrency('COP');
  • 获取所有当前支持的数组

      /* Example */
      Currency::getSupportedCurrencies();

端点

路由基础:https://yourhost/api/icurrency/v1/

  • 货币

  • 属性

    • 创建。

      • 方法:POST

      • 需要认证:☑

      • 路由

        • /currencies
      • POST参数(示例)

        {
           attributes:{
             name: 'name',
             code: 'code',
             symbol_left: 'symbol_left',
             symbol_right: 'symbol_right',
             decimal_place: 'decimal_place',
             value: 'value',
             status: 'status',
             default_currency: 'default_currency',
           }
        }
        
    • 读取

      • 方法:GET

      • 需要认证:☐

      • 路由

        • /currencies
        • /currencies/id
      • 过滤器

    • 更新

      • 方法:PUT
      • 需要认证:☑
      • 路由
        • /currencies/id
    • 删除

      • 方法:DELETE
      • 需要认证:☑
      • 路由
        • /currencies/id