Интеграция Sage Form

Я пытался интегрировать Sage Pay, используя их интеграцию форм, но не могу передать печально известную ошибку 5080. Я проработал 10 дней назад и вперед с поддержкой Sage, и они признали, что больше не могут помочь, и убеждены, что это проблема с шифрованием. Я также просмотрел ответы здесь, и я не могу найти решение. Раньше я выполнял много интеграций с использованием других систем, но отсутствие обратной связи от системы очень расстраивает, что делает отладку практически невозможной.

Вещи, которые я могу подтвердить: - Версия PHP 7.0.15, как часть установки Wordpress - передача уникального кода VendorTxCode - передача всех необходимых полей с живыми URL-адресами успешного и неудачного выполнения - передача VPSProtocal, TxType, VendorName и Crypt (подтверждено просмотром сетевого инструмента в Chrome после запрос не выполнен) - попробовали как тестовый, так и действующий портал, используя соответствующие ключи и правильные шлюзы - имели многочисленные демонстрационные сообщения, просмотренные службой поддержки и проверенные как правильный формат - подтвердили шифрование - предоставили незашифрованную строку для поддержки, их команда эскалации зашифровала строку и отправила обратно зашифрованная строка - использовалось приложение для сравнения строк для сравнения строк, и они идентичны - я не вижу недействительных транзакций на портале, так как у меня нет вкладки переходов для просмотра и поддержки, сказали, что они даже не могут увидеть, что запрос пытается попасть на сервер.

Они продолжают говорить мне, что это проблема с шифрованием.Любые предложения о том, как лучше всего отладить это или какие-либо незаметные решения, которые помогли другим, будут очень полезны - я не уверен, что лучше всего опубликовать здесь, чтобы вы могли увидеть, но я могу при необходимости

Большое спасибо


person Andy Ireland    schedule 30.01.2017    source источник


Ответы (1)


  1. Войдите в My Sage Pay со своими учетными данными администратора, создайте пользователя и дайте ему разрешение на просмотр транзакций (и т. Д. - просто нажмите на лот!). Войдите в систему как этот пользователь, и вы сможете видеть транзакции. Посмотрите в разделе Invalid, и вы увидите причину.

  2. Убедитесь, что вы используете правильный пароль шифрования. Они разные для live / test

  3. В противном случае разместите здесь свою незашифрованную строку криптографии - я посмотрю на нее и скажу вам, где вы ошиблись.

https://test.sagepay.com/gateway/service/vspform-register.vsp?VPSProtocol=3.00&TxType=PAYMENT&Vendor=sagepaylabs2&Crypt=@ba357b87773ffd296f15443bf65b10324d654c2177ee642055d1d112638ff4a22f1cf3656637dafcc437783ed2f091ddea0b6c6d703b2dfefc7196f85baaf6b6fdea618046b03d8b3ee3fa1594b31957e462d5fe58586ae997425f2f449f3cec21c1d82f9c025d2be1335159a552f000480909f0dba755260a5512a5d20e4b5e98b4e165c0dcaf2ecf7ec503a651ea7d8bb6cb35e9ac1f962f5876306060d188973d93a378750d72046ac2a3b34ef43d43cde9446c157b41ca9299f15ac6498996c4b5f471dd7e69df58c58a46fc567819462aaba78e51f712216bf7e1d5ae2712151144968e842c69ad3807eff0f44b1425ce5f06aa503d2469282720f5b39ec7612b3bf178341737adc8c0401247ecf12b3b5f37a5e9da23ec3a1b2db324cb4c1f4287c2c67ea1f7277b08355693f29162381b2dba77045291434f161d04d5bb07c70025eaa3f682d3701a81e8eb7d06b2485dc70df576adef9791fabb599a66f8c1fbfb84c820ff726eb64a1c721f09aa764e1cca12d05ce7ff8c9f89154c27b4aa57112a30062cbfd69bd2ae6dad591d006fce915aabd2ad9432ff75184de30a44fc50c52ced889982eeedaa1c52dcd2e86114fb8b1b914eb32cfd2e2d06f49a74f6e734cca20008d1b8f328281a»отн=

person Rik Blacow    schedule 31.01.2017
comment
спасибо за это, Рик ... Шаг 1 завершен (я впервые получил его совет) Я вижу тестовые транзакции, которые обрабатываются, чтобы убедиться, что учетная запись работает ... Однако я не вижу никаких неудачных транзакций. Я упомянул об этом в поддержку - похоже, он не может быстро что-либо обрабатывать. Могу подтвердить, что использую активный шлюз и правильный пароль. - person Andy Ireland; 31.01.2017
comment
Строка в соответствии с просьбой: VendorTxCode = tba_58907200d89c4 & Сумма = 50,00 & Валюта = EUR & Описание = BabysittingFees & BillingSurname = SNAME & BillingFirstnames = Fname & BillingAddress1 = BAddress1 & BillingCity = BCITY & BillingPostCode = 00000 & BillingCountry = IE & DeliveryFirstnames = Fname & DeliverySurname = $ name & DeliveryAddress1 = DAddrss1 & DeliveryCity = DCity & DeliveryPostCode = 00000 & DeliveryCountry = IE & SuccessURL = https://пример.ru/success&FailureURL=https://example.com/failure - person Andy Ireland; 31.01.2017
comment
Когда я попробовал это, у меня возникли ошибки - оказывается, сохранение строки, поскольку Unicode обнаруживает множество пробелов в строке, которые вызывали проблемы с шифрованием. Сохраните строку как Unicode, удалите все пробелы и повторите попытку. О, и вам нужно добавить протокол в successURL. - person Rik Blacow; 31.01.2017
comment
Cheers Rik - протокол есть - казалось, исчез, когда я вставил сюда поле для комментариев - я немного запутался в том, откуда берется пробел - могу ли я просто отменить процесс шифрования от вас 1) создайте строка ... 2) применить PKCS5 Padding ... 3) зашифровать с помощью mcrypt_encrypt (используя MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC и пароль в качестве ключа и инициализации) .... 4) преобразовать в шестнадцатеричный с помощью bin2hex ... 5) скрыть в верхний регистр с помощью strtoupper .... 6) добавить @ к строке ...... в какой момент убирается пробел? - person Andy Ireland; 31.01.2017
comment
Не уверен! Попробуйте использовать ответ из stackoverflow.com/questions/28525026/ sage-pay-v3-00-интеграция - person Rik Blacow; 31.01.2017
comment
С другой стороны, Рик - я сравнил свой вывод в тестовой строке с тем, который закодирован службой поддержки Sagepay, и он оказался идентичным ... - person Andy Ireland; 31.01.2017
comment
Спасибо за предложение, Рик - прошел через этот ответ, и процесс шифрования идентичен тому, который я реализовал (и описан выше) - я в тупике - не знаю, что попробовать дальше - отсутствие обратной связи от системы похоже на летать вслепую - person Andy Ireland; 31.01.2017
comment
Я зашифровал вашу строку и записал ошибки. Он был полон такой ерунды: сумма = 50,00 валюта = евро & Desâ ?? â ?? crisption = услуги няни - поэтому я скопировал строку в текстовый файл, сохраненный как Unicode, затем скопировал его в Eclispe, очистил удалил все пробелы, повторно зашифровал его, и все было в порядке .... - person Rik Blacow; 01.02.2017
comment
извините за то, что выговорили о Рике, но думаете ли вы, что копирование / вставка в комментарии здесь могло ввести этот материал - я просто смотрю выше, и там разрыв строки после Des, где вы видели дерьмо, просто пытаясь исключить этот источник ошибки . Я думаю, что это объекты HTML, добавленные SO. Вы можете увидеть это, если проверите элемент в Chrome - я не вижу их на своей веб-странице, когда я делаю то же самое - когда вы удалили все это и получили его для отправки - любой шанс, что вы могли бы опубликовать закодированную строку, чтобы я мог сравнить с моей - я считаю, что это единственный способ проверить шифрование - person Andy Ireland; 01.02.2017
comment
Закодированная строка будет другой - у меня другой пароль шифрования - person Rik Blacow; 01.02.2017
comment
Я разместил свою ссылку как поправку к своему ответу (это слишком долго для комментариев!). Достаточно сказать, что все, что я изменил, - это добавление https: // к successURL и изменение валюты на GBP, поскольку на этом счете нет евро. Я также перепечатал (вручную) все имена полей, чтобы избавиться от той загадочной чуши, которая появлялась. - person Rik Blacow; 01.02.2017
comment
Рик, извините за то, что потратил ваше время, но я бы не смог решить эту проблему без вашего последнего сообщения. На страницах 10 и 11 официальной документации четыре переменные формы цитируются как VPSProtocol, TxType, VendorName и Crypt - см. В вашем сообщении у вас есть Vendor, а не VendorName - в ту минуту, когда я изменил, он работает нормально. Это исправляется к тому времени, когда вы добираетесь до приложения, но, конечно, я никогда не справлялся с этим .... Хорошо, что через месяц я не вернусь - спасибо за помощь !! Может помочь кому-то другому - person Andy Ireland; 01.02.2017