Stripe Payment: Rollback stipe-php from 20.0.0 back to 19.4.1 to fix a isses with adding saved paymentss, Stripe updated their API in which we will update to a later date

This commit is contained in:
johnnyq
2026-05-04 12:32:12 -04:00
parent a6d996b83f
commit 0cdb780b88
159 changed files with 281 additions and 908 deletions

View File

@@ -6,6 +6,6 @@ namespace Stripe\Util;
class ApiVersion
{
const CURRENT = '2026-03-25.dahlia';
const CURRENT_MAJOR = 'dahlia';
const CURRENT = '2026-02-25.clover';
const CURRENT_MAJOR = 'clover';
}

View File

@@ -1,128 +0,0 @@
<?php
namespace Stripe\Util;
/**
* Handles coercion between PHP int and JSON string for int64_string fields.
*
* V2 API fields marked as int64_string are transmitted as JSON strings on
* the wire but exposed as PHP ints in the SDK.
*/
class Int64
{
/**
* Coerce outbound request params: convert PHP ints to strings where
* the request schema indicates an int64_string field.
*
* @param mixed $params
* @param array $schema e.g. ['kind' => 'object', 'fields' => ['amount' => ['kind' => 'int64_string']]]
*
* @return mixed
*/
public static function coerceRequestParams($params, $schema)
{
if (null === $params) {
return null;
}
if (!isset($schema['kind'])) {
return $params;
}
if ('int64_string' === $schema['kind']) {
if (\is_int($params)) {
return (string) $params;
}
return $params;
}
if ('array' === $schema['kind'] && isset($schema['items'])) {
if (\is_array($params)) {
$result = [];
foreach ($params as $key => $value) {
$result[$key] = self::coerceRequestParams($value, $schema['items']);
}
return $result;
}
return $params;
}
if ('object' === $schema['kind'] && isset($schema['fields'])) {
if (\is_array($params)) {
$result = $params;
foreach ($schema['fields'] as $field => $fieldSchema) {
if (\array_key_exists($field, $result)) {
$result[$field] = self::coerceRequestParams($result[$field], $fieldSchema);
}
}
return $result;
}
return $params;
}
return $params;
}
/**
* Coerce inbound response values: convert JSON strings to PHP ints where
* the field encodings indicate an int64_string field.
*
* @param mixed $values
* @param array $encodings e.g. ['amount' => ['kind' => 'int64_string'], 'nested' => ['kind' => 'object', 'fields' => [...]]]
*
* @return mixed
*/
public static function coerceResponseValues($values, $encodings)
{
if (!\is_array($values)) {
return $values;
}
foreach ($encodings as $field => $encoding) {
if (!\array_key_exists($field, $values)) {
continue;
}
$value = $values[$field];
if (!isset($encoding['kind'])) {
continue;
}
if ('int64_string' === $encoding['kind']) {
if (\is_string($value) && \is_numeric($value)) {
$values[$field] = (int) $value;
}
} elseif ('array' === $encoding['kind'] && isset($encoding['items'])) {
if (\is_array($value)) {
foreach ($value as $i => $item) {
if (!isset($encoding['items']['kind'])) {
continue;
}
if ('int64_string' === $encoding['items']['kind']) {
if (\is_string($item) && \is_numeric($item)) {
$values[$field][$i] = (int) $item;
}
} elseif ('object' === $encoding['items']['kind'] && isset($encoding['items']['fields'])) {
if (\is_array($item)) {
$values[$field][$i] = self::coerceResponseValues($item, $encoding['items']['fields']);
}
}
}
}
} elseif ('object' === $encoding['kind'] && isset($encoding['fields'])) {
if (\is_array($value)) {
$values[$field] = self::coerceResponseValues($value, $encoding['fields']);
}
}
}
return $values;
}
}

View File

@@ -154,17 +154,11 @@ abstract class Util
* ApiResource, then it is replaced by the resource's ID.
* Also clears out null values.
*
* When $serializeNull is true (used for V2 POST request
* bodies), null values in associative arrays are preserved instead of
* stripped. This is necessary because V2 JSON bodies use explicit null
* to signal "delete this field / metadata key".
*
* @param mixed $h
* @param bool $serializeNull when true, preserve null values instead of stripping them
*
* @return mixed
*/
public static function objectsToIds($h, $serializeNull)
public static function objectsToIds($h)
{
if ($h instanceof \Stripe\ApiResource) {
return $h->id;
@@ -172,7 +166,7 @@ abstract class Util
if (static::isList($h)) {
$results = [];
foreach ($h as $v) {
$results[] = static::objectsToIds($v, $serializeNull);
$results[] = static::objectsToIds($v);
}
return $results;
@@ -181,21 +175,9 @@ abstract class Util
$results = [];
foreach ($h as $k => $v) {
if (null === $v) {
if ($serializeNull) {
$results[$k] = null;
}
continue;
}
$results[$k] = static::objectsToIds($v, $serializeNull);
}
// If the input was an associative array with string keys but
// all values were stripped, $results is an empty indexed array.
// PHP's json_encode would render that as [] (JSON array) instead
// of {} (JSON object). Cast to object to preserve the type.
if (empty($results) && !empty($h)) {
return (object) $results;
$results[$k] = static::objectsToIds($v);
}
return $results;