承接 haryit/smile-one 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

haryit/smile-one

最新稳定版本:v1.0.2

Composer 安装命令:

composer require haryit/smile-one

包简介

README 文档

README

SmileOne

About

This package is specifically designed for the Smile.one , offering a simple and efficient method to purchase Smile One products using Laravel. Note - Currently, this package is intended for Mobile Legends Product from SmileOne

Installation

composer require haryit/smile-one

Configuration

You will need to publish the configuration file to your application. You can do this using the following command:

php artisan vendor:publish --tag="smileone-config"

After publishing the package's configuration file, you will find the file at config/smileone.php. You will need to fill out the necessary data in this file to use the package. The dafault region is Brazil.

Usage samples

  <?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Hary\SmileOne\SmileOne; // Pastikan ini di-import
use Hary\SmileOne\Exceptions\SmileOneException; // Import Exception untuk penanganan error
use Illuminate\Support\Facades\Http; // Gunakan Laravel HTTP Facade


class SmileOneController extends Controller
{
    /**
     * Properti untuk menyimpan objek SmileOne.
     * @var SmileOne
     */
    private $smileOneApi;

    /**
     * DIUBAH: Menggunakan Dependency Injection.
     * Laravel akan secara otomatis membuat objek SmileOne dan memasukkannya ke dalam controller.
     * Objek ini akan tersedia untuk semua metode melalui $this->smileOneApi.
     */
    public function __construct(SmileOne $smileOneApi)
    {
        $this->smileOneApi = $smileOneApi;
    }
    
    public function sendDataToSmileOne()
    {
        // Data yang akan dikirim
        $productName = 'magicchessgogo';
        $productId = '23881'; // Contoh ID produk

        // Data untuk body request
        $payload = [
            'user_id' => '13503190',
            'user_zone_id' => '4186',
            'region' => 'id' // Opsional, jika tidak ada akan default 'br'
        ];

        // URL lengkap ke endpoint Anda
        // Pastikan APP_URL di .env sudah benar (misal: http://127.0.0.1:8000)
        $url = config('app.url') . "/public/api/smileone/{$productName}/{$productId}/check-points";

        // Kirim request POST dengan Guzzle (via Laravel HTTP Facade)
        $response = Http::post($url, $payload);
return $response;
        // Cek apakah request berhasil
        if ($response->successful()) {
            // Lakukan sesuatu dengan response JSON
            $data = $response->json();
            return response()->json(['message' => 'Sukses mengambil data dari SmileOne', 'data' => $data]);
        } else {
            // Tangani jika terjadi error
            return response()->json(['message' => 'Gagal menghubungi endpoint', 'error' => $response->body()], $response->status());
        }
    }

    /**
     * Mengambil daftar produk berdasarkan nama produk dan region.
     */
    public function getProductList(Request $request, $productName)
    {
        $region = $request->input('region', 'br'); // Default ke 'br' jika tidak ada

        // DIUBAH: Gunakan objek yang sudah di-inject
        $list = $this->smileOneApi->setProduct($productName)->getProductList($region);

        return response()->json($list);
    }

    /**
     * Mengambil total SmilePoints yang tersedia.
     */
    public function getPoints(Request $request, $productName)
    {
        $region = $request->input('region', 'br');

        // DIUBAH: Gunakan objek yang sudah di-inject
        $points = $this->smileOneApi->setProduct($productName)->getPoints($region);

        return response()->json($points);
    }

    /**
     * Mengambil produk utama.
     */
    public function getProduct(Request $request, $productName)
    {
        $region = $request->input('region', 'br');

        // DIUBAH: Gunakan objek yang sudah di-inject
        $product = $this->smileOneApi->setProduct($productName)->getProduct($region);

        return response()->json($product);
    }

    /**
     * Mengecek poin pengguna dengan User ID dan User Zone ID.
     */
    public function checkProductPoints(Request $request, $productName, $productId)
    {
        $validated = $request->validate([
            'user_id' => 'required|string',
            'user_zone_id' => 'required|string',
            'region' => 'sometimes|string',
        ]);
        
        $region = $validated['region'] ?? 'br';

        // DIUBAH: Gunakan objek yang sudah di-inject
        $result = $this->smileOneApi
            ->setProduct($productName, $productId)
            ->setUser($validated['user_id'], $validated['user_zone_id'])
            ->checkProductPoints($region);

        return response()->json($result);
    }

    /**
     * Melakukan pembelian produk.
     */
    public function purchase(Request $request, $productName, $productId)
    {
        $validated = $request->validate([
            'user_id' => 'required|string',
            'user_zone_id' => 'required|string',
            'region' => 'sometimes|string',
        ]);

        $region = $validated['region'] ?? 'br';

        // DIUBAH: Gunakan objek yang sudah di-inject
        $result = $this->smileOneApi
            ->setProduct($productName, $productId)
            ->setUser($validated['user_id'], $validated['user_zone_id'])
            ->purchase($region);

        return response()->json($result);
    }
}

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-08-14