paypal-ipn - 我可以在本地主机(ASP.NET Web 窗体)下测试我的 IPN 侦听器 VB.NET 代码吗?
问题描述
PayPal 的IPN 测试页面的“本地开发测试”部分暗示可以通过 localhost 测试您的 IPN 侦听器代码,使用测试页面模拟来自 PayPal 的消息。
我的 TestIPN.aspx 页面包含以下标记,它似乎遵循 PayPal 提供的示例,但是当我在 Firefox 中在 localhost 下(通过 Visual Studio 2019)打开它并单击提交查询按钮时,我收到“找不到文件”错误对于 https://localhost:44390/PayPal/IPNHandler.aspx.vb。
不用说,IPNHandler.aspx.vb确实存在于我的 PayPal 文件夹中(在我的测试页面的表单标签中使用“PayPal/IPNHandler.aspx”没有区别)。当我在我的实时站点上运行它时,我也会遇到同样的错误。
任何有关如何调试此问题的指导将不胜感激。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Test IPN message</title>
</head>
<body>
<!--
<form target="_new" method="post" action="https://www.YourDomain.com/Path/YourIPNHandler.php">
-->
<form target="_new" method="post" action="PayPal/IPNHandler.aspx.vb">
<input type="hidden" name="receiver_email" value="admin%40mysite.co.uk"/>
<input type="hidden" name="business" value="admin%40mysite.co.uk"/>
<input type="hidden" name="first_name" value="Fred"/>
<input type="hidden" name="last_name" value="Bloggs"/>
<input type="hidden" name="payer_email" value="fred.bloggs%40gmail.com"/>
<input type="hidden" name="address_city" value="Southampton"/>
<input type="hidden" name="payment_type" value="instant"/>
<input type="hidden" name="payment_date" value="19:54:19 Apr 12, 2021 GMT"/>
<input type="hidden" name="payment_status" value="Completed"/>
<input type="hidden" name="mc_currency" value="GBP"/>
<input type="hidden" name="mc_gross" value="5.00"/>
<input type="hidden" name="custom" value="25"/>
<input type="submit"/>
</form>
</body>
</html>
解决方案
我收到 https://localhost:44390/PayPal/IPNHandler.aspx.vb 的“找不到文件”错误
那是正确的端口吗?如果你 https://localhost:44390/PayPal/IPNHandler.aspx.vb
输入 URL 栏会发生什么?使用适用于本地主机上的处理程序的 URL,它不会返回 404。action
相应地设置。
考虑使用https://ngrok.com之类的东西进行测试。
你为什么还要集成IPN?它已经有 20 年左右的历史了,您应该使用的当前 PayPal Checkout 集成不需要它......
按照设置标准付款指南并在您的服务器上创建 2 条路线,一条用于“创建订单”,一条用于“捕获订单”,记录在此处。两个路由都应该只返回 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 PayPal 交易 ID)并在转发之前purchase_units[0].payments.captures[0].id
立即执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)您将 JSON 返回给前端调用者。
将这 2 条路由与前端审批流程配对:https ://developer.paypal.com/demo/checkout/#/pattern/server
推荐阅读
- batch-file - 在批处理文件中使用 SET
- html - 对齐网格底部的按钮
- kubernetes - 如何将文件内容传递给 Helm values.yaml
- django - 用于传递 securityheaders.com 的 Django Cookie 前缀
- django - 如何正确使用 django-cms apphooks
- python - 创建一个scrapy蜘蛛。NameError:名称“自我”未定义
- ruby - 什么是 Ruby 的 bsearch find-minimum 和 find-any 行为?
- gitlab-ci - 如何在 gitlab-ci 脚本中执行 git 命令
- javascript - 相机 LED 灯未在 JavaScript Web 应用程序中运行
- python - _csv.Error:迭代器应该返回字符串,而不是 int(您是否以文本模式打开文件?) sqlalchemy