c# - RestAPISDK .Net 执行支付

标签 c# asp.net paypal

我正在尝试在 ASP.Net 网站中实现 Paypal。我已经安装了 RestAPISDK,并且一直遵循 Paypal ( https://devtools-paypal.com/guide/pay_paypal/dotnet ) 的本指南,并查看此处的引用资料 ( https://developer.paypal.com/webapps/developer/docs/api/#execute-an-approved-paypal-payment )

到目前为止一切进展顺利,但从 Paypal 网站返回后,我无法按照他们的文档执行付款。

指南说使用以下代码

Dictionary<string, string> sdkConfig = new Dictionary<string, string>();
sdkConfig.Add("mode", "sandbox");
string accessToken = "TOKEN";
APIContext apiContext = new APIContext(accessToken);
apiContext.Config = sdkConfig;

Payment payment = new Payment("PAYMENT ID");
PaymentExecution pymntExecution = new PaymentExecution();
pymntExecution.payer_id = ("DYRNAJP829GTN");
Payment executedPayment = pymnt.Execute(apiContext,pymntExecution);

但是 Payment 没有接受 Payment ID 的构造函数。

Rest API 引用说使用以下方法

Payment payment = Payment.Get(accessToken, "Payment ID");

但是,Payment.Get 已贬值。如果我无论如何使用它,我只会收到一个异常,说服务器响应了 404。

我们应该用什么来代替?我找不到任何最新的文档来为我指明正确的方向。 我想我可能必须使用 HttpClient 自己发送请求,但我肯定不必这样做。

最佳答案

我同意,当您尝试使用自己的沙箱商店执行付款时,C# 示例不起作用并产生相同的 404 异常。

您需要做的是:

付款 payment = Payment.Get(context, paymentID);

其中 context 是您的 apiContext, paymentID 是通过 PayPal 返回网址传回的 ID。

然后你需要:

var paymentExecution = new PaymentExecution
                {
                    payer_id = payerId
                };

最后你可以调用:

payment.Execute(context, paymentExecution);

这会返回一个付款对象,该对象的“状态”应为已批准...

关于c# - RestAPISDK .Net 执行支付,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703194/

相关文章:

html - 网站支付标准 : How would I connect the order being sent and the IPN receiving it?

Json 多数组的 C# Web API POST 方法

c# - 获取xml节点值

javascript - td 的 onclick 更改 td css

c# - IsPostBack 始终返回 false

javascript - ASP.NET VB WebService 请求出现 AJAX 500 错误

Paypal Website Payments Pro - Recurring Payment Profile - 负面测试 - 如何触发

c# - C# Windows 窗体中的圆角

c# - 忽略 XML 序列化中的属性

ASP.Net WebForms + Paypal 表单