Sagepay NotificationUrl

时间:2014-09-07 20:22:39

标签: sagepay

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

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

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

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

它缺少orderid之后的所有参数。

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

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

我可能误解了,但我想用

& 

对于正确的&符号。

有没有人碰到过这个?

我可以通过使用单个参数并使用管道或其他东西分隔参数来绕过它。但是用各个参数正确地做它会很好。

1 个答案:

答案 0 :(得分:1)

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

&&;因为& 放大器中的& 字符;分离注册帖体中的参数。如果您希望参数包含&您应该用%26替换它,或者只使用一个将为您执行转换的库。

Difference between Url Encode and HTML encode

此致 亚当