получить текущую скидку для данного пользователя в laravel-spark

Я использую laravel-spark для обработки полосовых платежей на своем веб-сайте, пользователи могут применять купоны к своим подпискам, чтобы у них были скидки, теперь я хочу показать скидку пользователя на странице профиля.
Я искал в документации spark информацию о том, как получить текущую скидку, и они нигде об этом не упоминали.
Я обнаружил, что в laravel-spark эта функция реализована в методе CouponController current()

CouponController :

    /**
 * Get the current discount for the given user.
 *
 * @param  Request  $request
 * @param  string  $userId
 * @return Response
 */
public function current(Request $request, $userId)
{
    $user = Spark::user()->where('id', $userId)->firstOrFail();

    if ($coupon = $this->coupons->forBillable($user)) {
        return response()->json($coupon->toArray());
    }

    abort(204);
}

Я попытался вызвать этот метод, на мой взгляд, с помощью Vue следующим образом:

 axios.get('/coupon/user/'+ this.user.id).then(response => {
    console.log("response : ", response);
    coupon = response.data.data;
    if (coupon) {
      //do something 
    }
}, error => {
    console.log("some error occurred", error);
});

но ответ всегда пуст с кодом состояния 204, даже если у пользователя есть действующий купон в его страйп-аккаунте. какие-либо предложения ?!


person Mahmoud Abd AL Kareem    schedule 18.10.2017    source источник


Ответы (1)


Наконец, я обнаружил, что этот метод внутри контроллера купонов получает действительные купоны, которые применяются к клиентам, а не к подпискам, поэтому все, что вам нужно, это применить купоны к каждому клиенту, а не к подписке. на полосе.
или вы можете написать свою логику для получения скидок через Stripe API, вы можете найти все подробности здесь: https://stripe.com/docs/api#discounts Надеюсь, что это поможет вам.

person Mahmoud Abd AL Kareem    schedule 20.10.2017