Stripe / node.js: как безопасно получить полосовую подписку + шаг 1

NameCreator::createName подразумевает, что либо метод является статическим (вид №1 в таблице ниже), либо цель целевого интерфейса также принимает экземпляр класса (вид # 3, например BiFunction). Ваши методы не являются статическими, и поэтому, предположительно, ваша цель не принимает экземпляр, поэтому вы получаете ошибку «Can not solve method». Вероятно, вы захотите использовать ссылку метода на экземпляре (вид # 2). Изнутри класса вы можете использовать:

Function func = this::createName

Из-за пределов класса, который вы можете использовать:

NameCreator creator = new NameCreator();
Function func = creator::createName;

Что касается использования одно- или двухпараметрической версии , это зависит от того, какой целевой интерфейс используется. Вышеупомянутый будет использовать ваш первый метод, потому что Function берет строку и возвращает строку. Например, в следующем функциональном интерфейсе будет использоваться ваш второй метод:

NameCreator creator = new NameCreator();
BiFunction func = creator::createName;

См. Function , BiFunction и весь пакет java.util.function

Вас также может заинтересовать учебник Java по ссылкам метода , в частности эта часть:


Существует четыре вида ссылок на методы:

Kind                                                   | Example
==============================================================================================
Reference to a static method                           | ContainingClass::staticMethodName
-------------------------------------------------------+--------------------------------------
Reference to an instance method of a particular object | containingObject::instanceMethodName
-------------------------------------------------------+--------------------------------------
Reference to an instance method of an arbitrary object | ContainingType::methodName
of a particular type                                   |
-------------------------------------------------------+--------------------------------------
Reference to a constructor                             | ClassName::new
==============================================================================================

1
задан tilly 19 January 2019 в 17:34
поделиться

1 ответ

1.) вам необходимо получить текущую подписку на основе сохраненного идентификатора. Это можно сделать следующим образом:

stripe.subscriptions.retrieve(
  "sub_6OZnwv0DZBryPt",
  function(err, subscription) {
    // asynchronously called
  }
);

Объект subscription будет иметь информацию о текущем количестве (см. Пример ответа и документацию по объекту подписки ). Что приводит к вашему второму вопросу.

Чтобы получить подписку, вам нужно сохранить только идентификатор. Это безопасно, ID не имеет смысла для других, если у них нет также ваших тестовых / живых ключей. Убедитесь, что вы защищаете эти ключи, и не стесняйтесь хранить идентификаторы, такие как subscription_id, customer_id и т. Д.

0
ответ дан Máté 19 January 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: