对于不同的价格模型,多次重复使用计划ID

时间:2016-08-01 22:13:44

标签: braintree

我正在使用具有应付功能的软件工具。我计划使用braintree来处理付款部分,但目前只能使用网络用户界面创建计划。

由于我的功能价格因国家/地区而异,我认为我只需创建一个计划 private void CreateTree() { TreeNode ns = new TreeNode(txtProcName.Text.Trim()); ArrayList array = GetDepends(txtProcName.Text.Trim()); for (int i = 0; i < array.Count; i++) { ns.Nodes.Add(array[i].ToString(), array[i].ToString()); ArrayList array2 = GetDepends(txtProcName.Text.Trim()); } treeView1.Nodes.Add(ns); } private ArrayList GetDepends(string sProcName) { ds.Clear(); ArrayList list = new ArrayList(); ConnectionString = "Provider=SQLOLEDB;Data Source='" + txtServerName.Text.Trim() + "';Port=" + txtPort.Text.Trim() + ";" + "UID='" + txtUserName.Text.Trim() + "';PWD='" + txtPassword.Text.Trim() + "';" + "Database='" + txtDatabase.Text.Trim() + "';charset=cp850;"; AseConnection conn = new AseConnection(ConnectionString); AseCommand cmd = new AseCommand("exec sp_depends ["+sProcName+"]", conn); cmd.CommandType = CommandType.Text; AseDataAdapter adapter = new AseDataAdapter(cmd); conn.Open(); adapter.Fill(ds); conn.Close(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (ds.Tables[0].Rows[i]["type"].ToString() == "stored procedure") { list.Add(ds.Tables[0].Rows[i]["object"]); } } return list; } 并将其与功能相关联:

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是否是个好主意。

我想要这样做的主要原因是因为我不想为所有国家/地区创建计划并将所有这些ID存入我的数据库等。

这样我只为每个功能制定了一个计划,其余的将在我这边处理。

1 个答案:

答案 0 :(得分:2)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support

您在上面概述的方法是正确的,并且是以不同价格设置Subscriptions的正确方法。