Мне бы хотелось иметь универсальную функцию для извлечения объектов с полосы (клиенты, подписки, купоны и т. Д.).
Возможно, я не делаю правильного пути, но функция работала довольно долго, обрабатывая ошибки для каждого типа поиска - я делала пример обработки ошибок try catch, предоставленный документацией полосы снова и снова в переключатель. поэтому я хотел бы иметь только один оператор try catch и динамически оценивать try в зависимости от типа объекта, который я получаю. Это возможно? в противном случае я могу просто вернуться к очень длинной функции со всеми операторами try catch.
function stripe_retrieve_object($objectName,$objectId) {
switch ($objectName) {
case "coupon":
$retrieveStripeCode = "\Stripe\Coupon::retrieve(\"$objectId\");";
break;
case "customer":
$retrieveStripeCode = "\Stripe\Customer::retrieve(\"$objectId\");";
break;
case "subscription":
$retrieveStripeCode = "\Stripe\Subscription::retrieve(\"$objectId\");";
break;
default:
echo "There was a generic error. We were unable to retrieve payment data, and no updates to payment were made. Please contact admin@email.com";
} # switch ($objectName) {
try {
$stripeTry = eval($retrieveStripeCode);
return $stripeTry;
catch(\Stripe\Error\Card $e) { ... }
} # function stripe_retrieve_object($objectName,$objectId)
Я вижу в журналах на полосе, что выполняется вызов для извлечения объекта, но тело ответа пусто на полосовой панели и ничего не возвращается из $ stripeTry = eval ($ retrieveStripeCode); я попытался var_dump ($ stripeTry), и он вернулся NULL.