2016-08-01 4 views
0

Я работаю над программным инструментом с оплачиваемыми функциями. Я планирую использовать braintree для обработки платежной части, но на данный момент можно создавать планы с использованием веб-интерфейса.Повторно использовать идентификатор плана несколько раз для разных моделей цен

Поскольку цены моих функций варьируется в зависимости от страны, я думал, что я мог бы просто создать план xyzd и связать это с особенностью:

INSERT INTO tool_feature (billing_plan_id, name) VALUES ('xyzd', 'Basic feature'); 

SET @basicFeatureId = 1; 

и для другой таблицы, которая определяет цены на каждая страна я бы:

SET @germany = 1; 
SET @italy= 2; 

INSERT INTO tool_feature_billing_plan 
    (country_id, tool_feature_id, price) 
VALUES 
    (@germany, @basicFeatureId, 9.9); -- € 9.90 in Germany 

INSERT INTO tool_feature_billing_plan 
    (country_id, tool_feature_id, price) 
VALUES 
    (@italy, @basicFeatureId, 19.9); -- € 19.90 in Italy 

Это позволит мне сделать что-то вроде

Long countryId = countryRepository.getCountryIdByAlpha2Code("de"); 
Float price = toolFeatureBillingPlanRepository.getPriceForCountry(countryId); 

SubscriptionRequest request = new SubscriptionRequest() 
    .id("new_id") 
    .paymentMethodToken(paymentMethodToken) 
    .price(new BigDecimal("" + price))  // The price fetched from the database 
    .planId(planId) 
    .merchantAccountId(merchantAccountId); 

Result<Subscription> result = gateway.subscription().update(
    subscriptionId, 
    request 
); 

Кажется, что я могу это сделать, но вопрос в том, стоит ли использовать Plan/Subscription таким образом.

Основная причина, почему я хочу сделать это, потому что я не хочу, чтобы создать для всех стран план и получить все эти идентификаторы в моей базе данных и т.д.

Таким образом, я должен был бы только один план для каждой функции, а остальное будет обработано на моей стороне.

ответ

2

Полное раскрытие информации: Я работаю в Braintree. Если у вас есть дополнительные вопросы, не стесняйтесь обращаться к support.

Метод, описанный выше, является правильным и является правильным способом настройки Subscriptions с различными ценами.

+0

Благодарим за разъяснения! Я не был уверен, что на самом деле это хорошая идея сделать это вот так! – displayname

Смежные вопросы