Связь между Заказчиком и Подпиской: Braintree API PHP - PullRequest
0 голосов
/ 27 сентября 2018

Я работаю над тем, чтобы все активные участники были зарегистрированы в нашей учетной записи Braintree.Я могу перечислить всех клиентов, но не знаю, как перечислить активных.

На панели инструментов Braintree я могу легко увидеть это, перейдя в подписки и отфильтровав все активные подписки, а затем щелкнув идентификатор подписки.Оттуда я могу видеть, у какого клиента есть этот идентификатор подписки.

Затем я сначала попытался получить все активные подписки, но я также не могу найти связь ни с одним из клиентов.

Я используюPHP SDK.

Вот как я получаю наши активные подписки.

Код моей подписки в моей библиотеке:

function active_subscriptions(){
    return Braintree_Configuration::gateway()->subscription()->search([
        Braintree_SubscriptionSearch::status()->in([Braintree_Subscription::ACTIVE])
      ]);
}

Вот для контроллера:

function active_subscriptions(){
    $active_subscriptions = $this->braintree_lib->active_subscriptions();
    $counter = 5;
    foreach($active_subscriptions as $subscription) {
        if($counter == 0){
            die();
        }
        echo 'Subscription ID: '.$subscription->id.'<br />';
        echo 'merchantAccountId: '.$subscription->merchantAccountId.'<br />';
        echo 'planId: '.$subscription->planId.'<br /><br />';

        $counter--;
    }
}

Я нашел этот , но он в Ruby on Rails и нет подробностей об этом в документации.

1 Ответ

0 голосов
/ 27 сентября 2018

Полное раскрытие: я работаю в Braintree.Если у вас есть какие-либо дополнительные вопросы, свяжитесь с support .

Просто чтобы убедиться, что я понимаю результат, который вы ищете: В настоящее время вы пытаетесь получить всеправильные записи клиентов, которые привязаны к активным подпискам?

Если это так, вы можете добиться этого, выполнив следующие действия:

  1. Выполните итерацию по коллекции полученных вами активных подписокиз вашего поиска результата.

  2. Выполните синтаксический анализ каждого объекта подписки для токена метода оплаты, связанного с каждой подпиской.

  3. Отдельно выполните вызов paymentMethod.find () , чтобы получить объект метода оплаты.

  4. Объект метода оплаты будет содержать идентификатор клиента .

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

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

$collection = $gateway->subscription()->search([
  Braintree_SubscriptionSearch::status()->in(
    [Braintree_Subscription::ACTIVE]
    )
]);

foreach($collection as $subscription) {
    $token = $subscription->paymentMethodToken;
    $paymentMethod = $gateway->paymentMethod()->find($token);
    $customer = $paymentMethod->customerId;
    echo $customer . "\n";
}

Если это не то, что вы ищетеили если у вас есть какие-либо дополнительные вопросы, вы можете напрямую обратиться в службу поддержки Braintree, и мы поможем вам в дальнейшем.

...