【问题标题】:Weird output when trying to list all customers in Stripe using php尝试使用 php 在 Stripe 中列出所有客户时出现奇怪的输出
【发布时间】:2016-11-22 06:38:55
【问题描述】:

我创建了一个数据库 customers.txt,其中保存了我在 Stripe 中创建的所有客户。现在我想列出所有的客户。这是我在 php 中列出客户的代码。

   $e= \Stripe\Customer::all(array(
        'limit' => 3
       

    	));
   
echo $e;


    }

但是输出很奇怪:

图片:

有人可以帮我列出客户吗?

现在我得到了我的 JSON 并运行它:

$e=\Stripe\Customer::all(array(
    "limit"=>10

	));

$customers=json_decode($e,true);
var_dump($customers);

我得到的只是 NULL 响应!

【问题讨论】:

  • source 和 email 不是列表客户 api 的有效参数,stripe.com/docs/api#list_customers
  • @MatthewArkin 我编辑了帖子。
  • 所以 $e->data 是一个客户数组,$e->data[0] 是一个客户对象。

标签: php database list stripe-payments


【解决方案1】:

那个输出不是 wyrd,它是一个 Stripe JSON 字符串。代表 Javascript Object Notation (website)。

Stackoverflow 上有很多关于 JSON 的问题,所以可以问诸如 How to convert JSON string into a PHP array 之类的问题。 还有 Stripes 自己的文档(非常好),声明:

所有 API 响应(包括错误)都会返回 JSON,尽管我们的 API 库会将响应转换为适当的特定于语言的对象。

来自the Stripe Documentation

编辑: 您可以阅读 A useful question 关于将 JSON 字符串转换为对象,反之亦然

现在你知道 JSON 是什么了

使用它来获取 PHP 客户对象。 (修订)

$e // customer JSON of all customers.  
$customers = $e->__toArray(true);
//$customers = json_decode($e);

然后在您的应用程序中处理数组$customers

注意:

$customers$customersArray 的值将是 Object 或 String 数据类型,因此您需要适当对待,它们不会与 echo 一起显示,因为 echo 是一个字符串输出函数,所以您需要使用print_r()var_dump() 在屏幕上以原始形式显示这些值。

编辑两个

建议从您的屏幕截图中将来自 Stripe 的 API 响应格式化为对象数组。这可以通过关注this Stack Overflow Answer here 来完成。

请查看我上面修改过的代码。

【讨论】:

  • 那么这是在 Stripe 中列出客户的正确方法吗?除了转换为php数组?
  • 获得 JSON 后,您可以使用 json_decode 函数将 JSON 数据转换为 PHP 对象(或多个)。我会更新我的答案....
  • 现在我在转换后接受空白响应。
  • 因为您正在尝试回显数组,所以请改用print_r()var_dump()。另外请不要更改问题,但要添加内容,以后的人会感到困惑,因为您没有显示您的 JSON 屏幕截图,我曾经用它来回答您的原始查询。 @user6591546
  • 不用担心@user6591546。如果这解决了您的问题,那么您可以在我的答案旁边打勾,也可能给 +1(向上箭头)。 :-)
猜你喜欢
  • 2020-06-23
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 2021-07-13
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多