SalesOrderPaymentDataConverter.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Sales\Setup;
  7. use Magento\Framework\DB\DataConverter\DataConversionException;
  8. use Magento\Framework\DB\DataConverter\SerializedToJson;
  9. /**
  10. * Serializer used to additionally handle the data conversion of Vault token metadata
  11. */
  12. class SalesOrderPaymentDataConverter extends SerializedToJson
  13. {
  14. /**
  15. * Convert from serialized to JSON format.
  16. *
  17. * @param string $value
  18. * @return string
  19. *
  20. * @throws DataConversionException
  21. */
  22. public function convert($value)
  23. {
  24. if ($this->isValidJsonValue($value)) {
  25. return $value;
  26. }
  27. $unserializedValue = $this->unserializeValue($value);
  28. if (isset($unserializedValue['token_metadata'])) {
  29. $unserializedValue['customer_id'] = $unserializedValue['token_metadata']['customer_id'];
  30. $unserializedValue['public_hash'] = $unserializedValue['token_metadata']['public_hash'];
  31. unset($unserializedValue['token_metadata']);
  32. }
  33. return $this->encodeJson($unserializedValue);
  34. }
  35. }