Интеграция формы Sagepay

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

Ответ Sage Pay Return выглядит следующим образом.

    Array
(
    [env] => test
    [vendorName] => Vendor name
    [integrationType] => form
    [basket] => Array
        (
            [items] => Array
                (
                )

        )

[decrypt] => Array
    (
        [VendorTxCode] => kingkebab-PAYMENT-1530730472-792775742
        [VPSTxId] => {45A5E0B8-DA1A-B3CE-424A-6E8BF2C8EA05}
        [Status] => OK
        [StatusDetail] => 0000 : The Authorisation was Successful.
        [TxAuthNo] => 18306833
        [AVSCV2] => SECURITY CODE MATCH ONLY
        [AddressResult] => NOTMATCHED
        [PostCodeResult] => NOTMATCHED
        [CV2Result] => MATCHED
        [GiftAid] => 0
        [3DSecureStatus] => NOTCHECKED
        [CardType] => VISA
        [Last4Digits] => 0006
        [Surcharge] => 3.50
        [DeclineCode] => 00
        [ExpiryDate] => 1221
        [Amount] => 59.60
        [BankAuthCode] => 999777
    )

[currency] => GBP
[isSuccess] => 1
[message] => OK
[res] => Array
    (
        [vpsTxId] => {45A5E0B8-DA1A-B3CE-424A-6E8BF2C8EA05}
        [txAuthNo] => 18306833
        [Surcharge] => 3.50
        [BankAuthCode] => 999777
        [DeclineCode] => 00
        [GiftAid] => 
        [avsCv2] => SECURITY CODE MATCH ONLY
        [addressResult] => NOTMATCHED
        [postCodeResult] => NOTMATCHED
        [cv2Result] => MATCHED
        [3DSecureStatus] => NOTCHECKED
        [CAVV] => 
        [cardType] => VISA
        [last4Digits] => 0006
        [expiryDate] => 1221
        [addressStatus] => 
        [payerStatus] => 
    )

)

Но есть одна вещь, где я просто застрял. Я хочу отправить свое пользовательское поле в зашифрованных данных sage pay и получить его обратно, когда транзакция будет выполнена успешно, и дать мне ответ и расшифровать его. поле, которое я хочу, похоже на номер заказа и т. д.

Может ли кто-нибудь помочь мне в этом.


person Shaban    schedule 04.07.2018    source источник
comment
Возможно, вам лучше хранить это в хранилище, совпадающем с VendorTxCode.   -  person Jason    schedule 14.10.2018


Ответы (2)


Если полезная нагрузка представляет собой буквенно-цифровые символы и имеет длину менее 200, вы можете отправить ее в Sage Pay в поле vendordata. Это не включено в ответ на транзакцию, но вы можете затем сделать дополнительный вызов с помощью API отчетов и вытащить его таким образом....

person Rik Blacow    schedule 16.08.2018

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

Вы отправляете VendorTxCode с зашифрованными данными формы и (в отличие от примера, приведенного здесь OP) вы делаете возвращаете VendorTxCode в конечном результате. Этот идентификатор будет уникальным и сгенерирован сайтом продавца, и его можно использовать для идентификации исходной транзакции в хранилище. Поэтому не отправляйте идентификатор заказа, отправьте VendorTxCode, используемый для поиска идентификатора заказа, когда пользователь вернется.

Альтернативный метод, который не совсем то, о чем просили, заключается в добавлении дополнительных данных в качестве параметров запроса в файл SuccessURL. Это будет зашифровано на пути к шлюзу Sage Pay, но не будет зашифровано на обратном пути, поэтому может быть предметом манипуляций. Вам нужно будет проверить его на сеансе (что сделает его пустой тратой времени, когда значение может также быть в сеансе для начала) или зашифровать или подписать его отдельно самостоятельно, что может привести к очень длинным URL-адресам.

person Jason    schedule 16.12.2018