如何解决在ASP.NET Core中从Paypal执行付款时发生INTERNAL_SERVICE_ERROR
执行Paypal付款时出现以下错误:
{“名称”:“ INTERNAL_SERVICE_ERROR”,“消息”:“内部服务错误 具有 发生”,“信息链接”:“ https://developer.paypal.com/docs/api/payments/#errors”,“ debug_id”:“ a997a9f72d8f6”}
以下是执行付款的代码:
var apiContext = PaypalConfiguration.GetAPIContext();
var paymentExecution = new PaymentExecution() { payer_id = payerId };
var payment = new Payment() { id = paymentId };
// Execute authorization.
var executedPayment = payment.Execute(apiContext,paymentExecution);// Execute the payment
if (executedPayment.state.ToLower() == "approved")
{
var auth = payment.transactions[0].related_resources[0].authorization;
var capture = new Capture()
{
amount = amount,is_final_capture = true
};
var responseCapture = auth.Capture(apiContext,capture);
return responseCapture;
}
解决方法
虽然有许多可能的原因导致INTERNAL_SERVICE_ERROR,但其中一些是暂时的,在这种情况下,此时此刻可能是沙盒错误,导致无法确认沙盒帐户电子邮件。
通过以下方式确认电子邮件:
- https://www.sandbox.paypal.com/businessprofile/settings/email-使用沙盒收件人电子邮件登录,然后重新发送确认消息。
- https://www.paypal.com/signin?intent=developer&returnUri=https%3A%2F%2Fdeveloper.paypal.com%2Fdeveloper%2Fnotifications%2F-使用真实帐户登录,以从“通知”标签中检索确认。
与上述情况分开,似乎您正在集成不推荐使用的v1付款API。您应该使用v2 / checkout / orders API,在此处记录:https://developer.paypal.com/docs/checkout/reference/server-integration/
您需要执行“设置交易”和“捕获交易”步骤。带有intent:authorize的中间授权步骤(在捕获之前)是可选的,只有在您对该额外步骤有非常特定且明确定义的业务需求的情况下,才执行此操作。
用于客户批准的最佳前端UI是:https://developer.paypal.com/demo/checkout-v4/#/pattern/server,因为它不使用重定向并保持您的网站在后台加载。这提供了最现代的“上下文”体验。
,这是Paypal的内部错误。
我会将带有debug_id的票证提交给https://www.paypal-techsupport.com/app/home
下面是一些具有相同错误的链接。也许会帮助您指出正确的方向。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。