Я работаю над программным инструментом с оплачиваемыми функциями. Я планирую использовать 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
таким образом.
Основная причина, почему я хочу сделать это, потому что я не хочу, чтобы создать для всех стран план и получить все эти идентификаторы в моей базе данных и т.д.
Таким образом, я должен был бы только один план для каждой функции, а остальное будет обработано на моей стороне.
Благодарим за разъяснения! Я не был уверен, что на самом деле это хорошая идея сделать это вот так! – displayname