如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?

Posted

技术标签:

【中文标题】如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?【英文标题】:How to get transaction details using transaction ID of a paypal transaction in asp.net mvc C#? 【发布时间】:2021-01-28 18:43:29 【问题描述】:

我们在我们的网站中集成了 paypal 支付网关,并且交易在 INR(不是美元)的沙盒帐户上运行良好。 但是付款成功后,paypal 重定向到我们的网站,并在其上附加了重定向 url 和查询字符串,例如 paymentId,token,PayerID 我们还从 c# 代码中获取了 Transaction ID。

现在我们需要获取特定交易的详细信息(如图所示),例如名称、买家、送货地址、描述、单价、数量、金额和发票 ID 等。 我如何在我们的网站上获取这些详细信息,以便在 Asp.net MVC 中开具发票。请帮忙。

【问题讨论】:

paypal 有一个 API。你有没有看过它是否可以返回你需要的数据? 【参考方案1】:

当您在 C# 代码中捕获/执行付款并接收交易 ID 时,您(在同一响应中)也已经收到交易详细信息。

详细信息__那里。在您已有的响应对象中查找它们。


更重要的是,您的集成似乎做了两件坏事:

您已使用旧的 v1/payments API 进行集成,可能与已弃用的 PayPal-Net-SDK 进行了集成 您使用的是重定向而不是上下文集成

解决上述问题的建议:

使用 Checkout-Net-SDK 切换到最新的 v2/checkout/orders API,记录在此:https://developer.paypal.com/docs/checkout/reference/server-integration/。您需要两条路线,一条用于“设置交易(创建订单)”,一条用于“捕获交易(捕获订单)” 不要使用任何重定向。完全没有。取而代之的是,让您的网站在后台保持打开状态,以便买家知道他们正在支付的费用并留在熟悉的环境中,并在这种情况下打开 PayPal。这是要使用的批准流程,与您服务器上的上述两条路由配对:https://developer.paypal.com/demo/checkout/#/pattern/server

【讨论】:

我们使用的是最新的 paypal Rest API SDK。对于交易 ID,我们正在使用此代码。 var executedPayment = ExecutePayment(apiContext, payerId, Session[guid] as string);`var trId = executedPayment.transactions[0].related_resources[0].sale.id;`私人Payment ExecutePayment(APIContext apiContext, string payerId, string paymentId) var paymentExecution = new PaymentExecution() payer_id = payerId ; this.payment = new Payment() id = paymentId ; return this.payment.Execute(apiContext, paymentExecution); 您正在使用已弃用的 PayPal-Net-SDK。 我们使用此 SDK 获得了除买家姓名和买家电子邮件之外的所有详细信息。上面的代码返回所有数据。你能告诉我如何获得买家姓名和电子邮件。我不知道哪个 sdk 是最新的,因为 nuget 包没有显示任何已弃用的消息。贝宝网站也引用了这个 SDK。我正在关注这个网址 [paypal.github.io/PayPal-NET-SDK/Samples/…] 这里是 GitHub 存储库的链接,其中包含弃用消息以及 Checkout-NET-SDK 新存储库的链接:github.com/paypal/PayPal-NET-SDK 记得阅读我上面的两个建议,其中链接到有关如何使用这个较新的 SDK 的文档...

以上是关于如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 页面 ASP.NET Core MVC 上使用 SignInManager 和 Usermanager

如何在 C# 和 ASP.NET MVC 中读取/写入 cookie

如何从 ASP.net MVC 程序中获取纯 c# 程序中的 JSON 数据?

如何确定在 C# ASP.NET CORE MVC 5.0 中选择了哪个单选按钮

如何缓存数据库表以防止在 Asp.net C# mvc 中出现许多数据库查询

如何在 Asp.net MVC C# 中使用 Linq 从多个表中选择具有最大计数值的记录