2014-09-07 2 views
0

Я пытаюсь реализовать шлюз оплаты Sagepay, но у меня проблема с адресом уведомления. Это, как я ее получения:Sagepay NotificationUrl

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.

Я представил билет, и они сказали:.

«Ваш Notification URL должен отвечать только с состоянием, RedirectURL и не необязательно поле StatusDetail Нет других HTML, заголовки, комментарии или текст должен быть включен либо до, либо после того, как эти поля. Sage Pay обрабатывает весь такой текст как ошибку и не выполняет транзакцию. Чтобы ответить на ваш вопрос, амперсанды не могут использоваться, поскольку они не соответствуют кодировке URL RFC1738. Обратите внимание, что мы не разработчики здесь, в Sage Pay, но мы будем попробуйте помочь вам в устранении неполадок. Ниже приведена ссылка на наше Руководство по протоколу сервера, а также ссылку на StackOverflow на форум профессиональных веб-разработчиков «

Возможно, я неправильно понял, но я подумал, используя

& 

для амперсандов, которые были бы правильными.

Кто-нибудь сталкивался с этим?

Возможно, я обойду его, имея один параметр и разделяя параметры с помощью трубы или чего-то еще. Но было бы неплохо сделать это правильно с отдельными параметрами.

ответ

0

Вы должны использовать кодировку URL вместо кодировки символов сущности.

Его раздевание все, после того, как &, потому что характер & в & усилителя; разделяет параметры в теле регистрации. Если вы хотите, чтобы ваш параметр содержал символ &, вы должны заменить его на% 26 или просто использовать библиотеку, которая будет выполнять преобразование для вас.

Difference between Url Encode and HTML encode

С уважением, Адам