我正在尝试在 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/