2013-09-30 2 views
-1

Я передаю имена элементов в моей строке URL-адреса PayPal, но как только я столкнулся с тем, у кого есть кодировка символов, он вызывает прерывание строки url при отправке на paypal.Перекодировка символов символов в Paypal строка url

Например я передаю следующее имя элемента:

Активное слушание - это то

Моя PayPal строка URL выводит как:

https://www.paypal.com/cgi-bin/webscr?item_name_1=Active listening –it’s 

Как вы можете см. его обложку - и 'это приводит к тому, что строка url прерывается. Если я вручную удалю – и ’, он работает нормально.

Я установил кодировку своего языка в бэкэнде PayPal как UTF-8, и я передаю UTF-8 в моей платежной строке.

Что я делаю неправильно?

+0

Внимательно прочитайте руководство PayPal - в нем говорится, что вы должны указывать все значения, отправляемые на их серверы. – Fracsi

+0

Thank's Fracsi Я дам вам попробовать – Mark

ответ

1

Управляемый, чтобы исправить это путем преобразования HTML символ с помощью

html_entity_decode('string', ENT_COMPAT, 'UTF-8') 

на имя элемента, прежде чем передать его в PayPal.

+1

спасибо за этот код, это сработало для меня. – Offboard

+0

Привет. Я могу столкнуться с проблемой, подобной вашей (в этом посте: http://stackoverflow.com/questions/40167842/integrating-paypal-ipn-in-php-not-working). Могу ли я спросить вас, где и как вы включаете эту строку html_entity_decode, которую вы упоминаете в качестве своего решения? – Michel

+0

Привет @Michel, Это было довольно давно, но из того, что я помню, я включил его непосредственно перед тем, как я отправил строку accross на paypal. Надеюсь, это поможет. – Mark

0

Возможно, вам придется сначала преобразовать их в UTF8, а затем в urlencode. Попробуйте сделать это

<?php 
echo rawurlencode(utf8_encode($yourvar)); 
+0

Эта работа doe, но теперь в конце проверки paypals они отображаются как символы, закодированные значения, например. '–' Вместо этого - – Mark

Смежные вопросы