PHP Stripe 客户->搜索未找到准确结果

问题描述 投票:0回答:2

我在使用 STRIPE customer->search 时遇到困难,有时会返回不正确的结果。

如果我搜索某个客户,如果它不存在,则添加它,然后重复 - 我可以发现它会第二次/第三次/第四次/等等添加客户 - 一段时间。同时,在 Stripe 仪表板上,我可以看到客户出现[多次]。

如果我在初次刷新之间等待几分钟 - 似乎没问题。

也许在添加客户和搜索找到它之间存在缓存、滞后或其他原因,但这并不是很有帮助。我错了吗?还是有什么我没有做的事情?

相关PHP代码在这里:

$stripe = new \Stripe\StripeClient($stripe_secretkey);


echo "<LI>Searching for $customerNm...</LI>";
$json = $stripe->customers->search(['query' => 'name:\'' . $customerNm . '\'']);
foreach ($json->data as $key) {
    echo "<LI>Found id:[" . $key->id . "]";
    if (strcmp($key->name, $customerNm) == 0) {
        $customerId = $key->id;
        $email = $key->email;
        break;
    }
 }
 echo "<hr>";


 if (strcmp($customerId, "") == 0) {

     echo "<LI>Result to search is <PRE style='margin-left:20px'>$json</PRE>";
     $email = str_replace(" ", "", str_replace(" ", "", "abc@$customerNm.com"));
     $json = $stripe->customers->create(
          [
             'email' => $email,
             'name'  => $customerNm,
          ]);
          $customerId = $json->id;
          echo "<UL>Created New STRIPE customer id: [$customerId]</UL>\n";

     }
 }

此代码可以在沙箱上运行这里**,如果您多次运行该页面 - 它会继续创建客户[一段时间]。

(请注意,此页面将创建一个 cookie“posterUID”,用作客户名称;一旦创建,它将一直保留到过期或手动删除)。

** 可以在here

查看完整来源
stripe-payments
2个回答
0
投票

这是 Stripe 搜索文档的预期行为:

不要对先写后读的流程使用搜索(例如,充电后立即搜索),因为数据不会立即可供搜索。正常操作条件下,1 分钟内即可搜索到数据。在中断期间,新数据或更新数据的传播可能会更加延迟。


0
投票

我也遇到了同样的问题。

我想知道是否可以使用 Stripe.Customer.list 而不是 Stripe.Customer.search 来访问最新的客户数据,有人知道这是否可行吗?

我在同一站点上找不到任何带有“列表”功能详细信息的 Stripe 文档,但我确实看到它在 Stripe 示例中用于检查现有客户:

https://docs.stripe.com/invoicing/customer?dashboard-or-api=api

编辑:

我认为“限制”会起作用,因为在下面的 Stripe 文档页面中,它没有说任何关于避免限制写入和读取的内容,但它确实提到了下面的搜索。

© www.soinside.com 2019 - 2024. All rights reserved.