【问题标题】:Sagepay NotificationUrlSagepay 通知网址
【发布时间】:2014-11-01 02:12:04
【问题描述】:

我正在尝试实施 Sagepay 支付网关,但我遇到了通知 URL 的问题。这就是我生成它的方式:

request.NotificationUrl = string.Format(
    "{0}Notification.aspx?orderid={1}&vendortxcode={2}&amount={3}",
    SagePaySettings.SiteFqdn,
    Request.QueryString["orderid"],
    request.VendorTxCode,
    txtOnlineDepositAmount.Text.Trim()
);

当我提交付款时,在我的 sagepay 门户中,它会将通知 URL 报告为:

Callback URL: https://www.****.uk/Notification.aspx?orderid={3a35f950-5b7c-e311-8437-12d0d8a96a66} 

orderid 后面的参数全部丢失。

我提交了一张票,他们说:

“您的通知 URL 应仅以 Status、RedirectURL 和可选的 StatusDetail 字段进行响应。在这些字段之前或之后不应包含其他 HTML、标题、cmets 或文本。Sage Pay 会将所有此类文本视为错误并且交易失败。要回答您的问题,不能使用 & 号,因为它们不符合 RFC1738 URL 编码。请注意,我们不是 Sage Pay 的开发人员,但我们会尽力帮助您解决问题。这是指向我们的服务器协议指南以及专业网络开发者论坛 StackOverflow 的链接”

我可能有误解,但我想通过使用

& 

对于正确的&符号。

有人遇到过这个吗?

我可以通过使用单个参数并用管道或其他东西分隔参数来解决它。但是最好使用单独的参数正确地做到这一点。

【问题讨论】:

    标签: opayo


    【解决方案1】:

    您应该使用 URL 编码而不是实体字符编码。

    & 之后的所有内容都被删除了,因为 & 中的 & 字符分隔注册帖子正文中的参数。如果您希望参数包含 & 字符,则应将其替换为 %26,或者只使用将为您执行转换的库。

    Difference between Url Encode and HTML encode

    问候, 亚当

    【讨论】:

    • 谢谢你,谢谢你,我正为此而抓狂。
    猜你喜欢
    • 1970-01-01
    • 2013-08-30
    • 2014-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-11
    • 2015-05-06
    相关资源
    最近更新 更多