asp.net-mvc - 如何将 HTML 表单转换为 C# 以用于 PayPal 订阅

标签 asp.net-mvc razor paypal .net-4.6

我有以下 HTML,它适用于我的测试环境中的订阅付款。

<form action="paypalWebAddress" method="post" target="_top">
    <input type="hidden" name="cmd" value="_xclick-subscriptions"/>                        
    <input type="hidden" name="business" value="myPaypalAccountId"/>
    <input type="hidden" name="paymentaction" value="sale"/>
    <input type="hidden" name="item_name" value="Subscription For abc123"/>
    <input type="hidden" name="currency_code" value="GBP"/>
    <input type="hidden" name="no_note" value="1" />
    <input type="hidden" name="a3" value="50"/>
    <input type="hidden" name="p3" value="6"/>
    <input type="hidden" name="t3" value="M"/>
    <input type="hidden" name="src" value="1" />
    <input type="hidden" name="srt" value="0" /><!--needs to be never ending-->
    <input type="hidden" name="return" value="www."/>
    <input type="hidden" name="notify_url" value="www."/>
    <input type="hidden" name="cancel_url" value="www."/>
    <input type="hidden" name="custom" value="abc123"/>
    <input TYPE="hidden" name="charset" value="utf-8">
    <input type="hidden" name="bn" value="Me_Subscribe_WPS_UK" />
    <input type="submit" name="submit" value="Make Payment"/>
</form>

我即将上线,担心有人可以轻易操纵 DOM,而我突然发送虚假付款。我觉得以某种方式从后面的代码中发布这些值会更安全,这样用户就无法篡改这些值,但是,用户仍然需要使用浏览器中的 PayPal 界面来登录和订阅。

PayPal-NET-SDK有一个快速入门并展示了如何开始。我已经完成了这个(复制并粘贴并在 Debug模式下运行)并且它执行得很好。然而,这不包括订阅,可能是出于上面解释的原因(并且可能会阻止他们在浏览器中访问 PayPal gui)。

我在 PayPal 仪表板区域获得了创建按钮并通过按钮引用的选项,但是,这对我不起作用,因为我需要能够为每个订阅设置 custom 字段因为用户可以订阅一项或多项服务,并且每项服务对于该用户来说都是独一无二的。

我不明白如何实现这一点

最佳答案

如果我没有理解错的话,在您的案例中,每个客户的每个订阅都是唯一的,并且不适用于静态按钮,因此 API 似乎是唯一的选择。

PayPal API 确实涵盖订阅,它们被称为 Billing Plans .由于每个订阅都是不同的,您可以为每个独特的服务(或服务组合)创建一个新的计费计划。这可以在没有任何中间 SDK 的情况下直接使用 HttpClient 到他们的 API 来完成。

或者,您提到的 PayPal-NET-SDK 似乎也涵盖计费计划。他们的Sample application关于如何创建、枚举和发布 Billing Plans 的例子相当多。确保检查 Payment 类中的 billing_agreement_tokens 集合。您可以在那里添加多个“服务” token 。

无论您离发布有多近,这里似乎仍需要进行大量测试。

关于asp.net-mvc - 如何将 HTML 表单转换为 C# 以用于 PayPal 订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54167897/

相关文章:

asp.net-mvc - 在 ASP.NET MVC 中构建 CMS

javascript - 如何禁用所有浏览器的 razor 组件中使用的 `<InputText type="password">` 字段中显示的建议密码列表

javascript - 页面上两个不同位置的两个文本 html 文本输入具有相同的提交 id

ruby-on-rails - Paypal自适应支付不再接受新申请?

php - 使用 PayPal API 支付第三方

c# - 异步 Controller 操作发生错误时重定向用户

asp.net - ASP.NET MVC 3 网站的日历

css - ASP.NET MVC 在发布时不捕获样式

javascript - 将 C# 模型从 View 传递到 Javascript

paypal - 如何在 paypal 中为 shopify MarketPlace App 启用批量支付