我想在我的.NET 网站上发起一个捐赠活动,要求人们同意向我的组织捐赠 200.00 美元。由于有些人可能没有所有的钱,我想让他们选择现在捐赠 50 美元或更多,然后在 1-3 个额外的每月付款之间分配剩余的钱。
我是否需要为每个可能的场景设置重复付款按钮,然后使用一些脚本来确定我应该将用户定向到哪个 PayPal 表单按钮?
我认为你必须创建一个计费计划。下面的代码片段来自PayPal SDK。我根据您的需要对其进行了一些修改,但您仍然需要自定义它。
var plan = new Plan
{
name = "Donation Split Payment",
description = "Monthly plan for the less fortunate.",
type = "fixed",
// Define the merchant preferences.
// More Information: https://developer.paypal.com/webapps/developer/docs/api/#merchantpreferences-object
merchant_preferences = new MerchantPreferences()
{
setup_fee = GetCurrency("0"),
return_url = httpContext.Request.Url.ToString(),
cancel_url = httpContext.Request.Url.ToString() + "?cancel",
auto_bill_amount = "YES",
initial_fail_amount_action = "CONTINUE",
max_fail_attempts = "0"
},
payment_definitions = new List<PaymentDefinition>
{
// Define a trial plan that will only charge $50 for the first
// month. After that, the standard plan will take over for the
// remaining 4 months.
new PaymentDefinition()
{
name = "First Payment",
type = "REGULAR",
frequency = "MONTH",
frequency_interval = "1",
amount = GetCurrency("50.00"),
cycles = "1",
charge_models = new List<ChargeModel>
{
new ChargeModel()
{
type = "TAX",
amount = GetCurrency("9.99")
}
}
},
// Define the standard payment plan. It will represent a monthly
// plan for $50 USD that charges once month for 3 months.
new PaymentDefinition
{
name = "Other payment",
type = "REGULAR",
frequency = "MONTH",
frequency_interval = "1",
amount = GetCurrency("50.00"),
// > NOTE: For `IFNINITE` type plans, `cycles` suld be 0 for a `REGULAR` `PaymentDefinition` object.
cycles = "3",
charge_models = new List<ChargeModel>
{
new ChargeModel
{
type = "TAX",
amount = GetCurrency("9.99")
}
}
}
}
};
我不熟悉“PayPal-Button”本身,但我猜,它只是一些参数的变化。最有可能在 URL 本身。(GET-Request)
因此,而不是创建多个按钮,您可以在您的网站上放置一个带有选项的下拉列表,将付款分成 n 个相等的部分,然后使用它重定向到相应的 PayPal-URL。
我不知道你的堆栈,但与 MVC(剃刀)和一些 JavaScript,它似乎并没有太多的努力。
所以要么使用 JS 在页面上重定向一个按钮点击或返回一个重定向后评估在服务器端。
如果 PayPal 使用 POST,那么您可以使用表单,在表单中使用其他 INPUT外部的一些事件来更改 INPUT 的值。这将需要 JavaScript。
因此,在 Select-Click-Event 上:设置 input-element 的值,“PayPal-on”将其用于 POST 请求。如下所示。
<script>
function SetValue(){
onValue.value = selector.value;
}
</script>
<SELECT id="selector" onClick="SetValue()">
... options
</SELECT>
<Form ...>
<input id="onValue" ... />
<on...>Send</on>
</Form>
检查此工作流https://developer.paypal.com/docs/subscriptions/
https://developer.paypal.com/docs/subscriptions/integrate/#4-create-a-subscription我没有完整的工作代码,以前称为计费协议。Paypal.net sdk 已有两年历史。https://github.com/paypal/PayPal-NET-SDK/blob/develop/Samples/Source/BillingAgreementCreateAndExecute.aspx.cs在 paypal 网站上提到了这一点。计费协议 API 弃用通知:/ v1 / billing-agreements 端点已弃用。改用 / v1 / billing / subscriptions 端点。有关详细信息,请参阅订阅集成。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(52条)