php - не найден класс записи использования полос - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь добавить записи об использовании в мою подписку.используя полосу создания конечной точки записи об использовании (https://stripe.com/docs/api#usage_record_create).

при выполнении моей функции я получаю сообщение об ошибке с сообщением Class 'Stripe\UsageRecord' not found in file Я не определил пространство имен, потому что я получил доступ к нему, напрямую ссылаясь на полосу с помощью \Stripe\который я ввел, используя composer. Я попробовал composer update, но это, похоже, не сработало. Я предполагаю, что отсутствует файл UsageRecord.php из composer install, но я понятия не имею, где добавитькопия файла в полосатый пакет

  public function stripeUsageRecord()
  {
    $authUser = auth()->user();
    $business = $authUser['business_id'];
    $user_amount = Transactions::select("user_id")
      ->where("business_id", "=", $business)
      ->groupBy("user_id")->count();
    $current_time = Carbon::now()->toDateTimeString();
    \Stripe\Stripe::setApiKey(env("STRIPE_SECRET"));

    \Stripe\UsageRecord::create(array(
      "quantity" => $user_amount,
      "timestamp" => $current_time,
      "subscription_item" => 'sub_DnAKVwNY2Sc4zf',
      "action" => 'set'
    ));
  }

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Скорее всего, вы используете слишком старую версию этой библиотеки.Stripe\UsageRecord было введено в версии 6.6.0, поэтому я предлагаю обновить библиотеку до последней версии:

composer require "stripe/stripe-php:^6.19"

Вам определенно не следует изменять содержимое каталога vendor, копировать и вставлятьклассы из разных версий библиотеки.

0 голосов
/ 16 октября 2018

Похоже, мне не хватало части пакета с полосками.

Я нашел копию UsageRecord.php в сети и создал файл по пути vendor\stripe\stripe-php\lib\UsageRecord.php

Затем я добавил содержимое кода, который нашел в сети, и добавил его в файл, и онработал.Содержание размещено ниже:

<?php

namespace Stripe;

/**
* Class UsageRecord
*
* @package Stripe
*
* @property string $id
* @property string $object
* @property bool $livemode
* @property int $quantity
* @property string $subscription_item
* @property int $timestamp
*/
class UsageRecord extends ApiResource
{

const OBJECT_NAME = "usage_record";

/**
* @param array|null $params
* @param array|string|null $options
*
* @return \Stripe\ApiResource The created resource.
*/
public static function create($params = null, $options = null)
{
  self::_validateParams($params);
  if (!array_key_exists('subscription_item', $params)) {
      throw new Error\InvalidRequest("Missing subscription_item param in request", null);
  }
  $subscription_item = $params['subscription_item'];
  $url = "/v1/subscription_items/$subscription_item/usage_records";
  $request_params = $params;
  unset($request_params['subscription_item']);

  list($response, $opts) = static::_staticRequest('post', $url, $request_params, $options);
  $obj = \Stripe\Util\Util::convertToStripeObject($response->json, $opts);
  $obj->setLastResponse($response);
  return $obj;
}
}
...