私は支払う機能を備えたソフトウェアツールを開発中です。私はbraintreeを使用して支払い部分を処理する予定ですが、現時点ではWeb UIを使用して計画を作成することしかできません。異なる価格モデルでプランIDを複数回再利用する
私の機能の価格は国によって異なりますので、私は単に計画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
を使用することをお勧めします。
私はすべての国のための計画を作成したくないので、私はそれをやりたい主な理由は、私のデータベースにすべてのこれらのIDを取得するなど
私は一つだけの計画を持っていると思います。この方法各機能のために残りの部分は私の側で処理されます。
ありがとうございます。これが実際にこのようにするのがよいかどうかはわかりませんでした。 – displayname