【发布时间】:2022-01-18 06:38:43
【问题描述】:
当我使用从 paypal 生成的代码的智能按钮在 paypal 沙箱中进行测试时,购买成功执行。 但是当我重定向到一个成功的购买页面时,调试中的 asp .net 引擎崩溃,然后不执行服务器代码(比如向客户发送成功的购买电子邮件,将 paypal 交易 ID 保存在数据库等)。 我使用 window.location、window.location.href、window.location.replace 等进行了测试……页面重定向但不执行其背后的代码。也许它执行了 1 或 2 行代码然后立即停止,其他时候它得到 localhost 拒绝连接的错误。
通过示例,此代码不会崩溃(paypalok.aspx 后面的调试和代码运行正常)
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication8.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<input id="Button1" type="button" value="button" onclick="redirect()" />
</div>
</form>
<script>
function redirect() {
window.location.href = 'paypalok.aspx';
}
</script>
</body>
</html>
您可以自己尝试一下,您将看到重定向到“paypalok.aspx”后,asp .net 调试如何意外停止。
通过示例,此代码崩溃:...
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="paypal3.aspx.cs"
Inherits="WebApplication7.paypal3" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="smart-button-container">
<div style="text-align: center;">
<div id="paypal-button-container"></div>
</div>
</div>
</div>
</form>
<script src="https://www.paypal.com/sdk/js?client-id=sb&enable-funding=venmo¤cy=USD"
data-sdk-integration-source="button-factory"></script>
<script>
function initPayPalButton() {
paypal.Buttons({
style: {
shape: 'rect',
color: 'gold',
layout: 'vertical',
label: 'paypal',
},
createOrder: function (data, actions) {
return actions.order.create({
purchase_units: [{ "amount": { "currency_code": "USD", "value": 0.81 } }]
});
},
onApprove: function (data, actions) {
window.location.replace ('paypalok.aspx');
},
onError: function (err) {
console.log(err);
}
}).render('#paypal-button-container');
}
initPayPalButton();
</script>
</body>
</html>
如果有任何帮助,我将不胜感激
【问题讨论】:
标签: javascript asp.net .net paypal jscript