2016-08-01 11 views
0

私は支払う機能を備えたソフトウェアツールを開発中です。私は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を取得するなど

私は一つだけの計画を持っていると思います。この方法各機能のために残りの部分は私の側で処理されます。

答えて

2

全開示:私はブレーンツリーで働いています。ご不明な点がございましたら、supportまでお気軽にお問い合わせください。

上記の方法は正確で、値段が異なるSubscriptionsを設定する適切な方法です。

+0

ありがとうございます。これが実際にこのようにするのがよいかどうかはわかりませんでした。 – displayname

関連する問題