条纹支付模式 - 没有这样的客户例外

Stripe payment mode - No such customer Exception

我成功地将 Stripe 结帐集成到 Java 网络应用程序中。

我想预填电子邮件和姓名字段。根据文档,我必须创建一个新客户并将其传递给会话。这是代码的相关部分:

        Stripe.apiKey = retrieveKey("CLIENT_SECRET_KEY");

        Map<String, Object> paramsC = new HashMap<>();
        paramsC.put("description", "My First Test Customer (created for API docs)");
        paramsC.put("email", "person@example.com");
        paramsC.put("name", "some name");
        Customer customer = Customer.create(paramsC);

        Map<String, Object> params = new HashMap<>();

        ArrayList<String> paymentMethodTypes = new ArrayList<>();
        paymentMethodTypes.add("card");
        params.put("payment_method_types", paymentMethodTypes);

        
        ArrayList<HashMap<String, Object>> lineItems = new ArrayList<>();
        HashMap<String, Object> lineItem = new HashMap<>();
        lineItem.put("name", "Stainless Steel Water Bottle");
        lineItem.put("amount", 8834);
        lineItem.put("currency", "eur");
        lineItem.put("quantity", 1);
        lineItems.add(lineItem);
        params.put("line_items", lineItems);
        params.put("customer", customer.getId());

        params.put("success_url", DOMAIN_URL);
        params.put("cancel_url", DOMAIN_URL + "/cancel.xhtml");

        RequestOptions requestOptions = RequestOptions.builder().setStripeAccount(CONNECTED_ACCOUNT_ID).build();

        session = Session.create(params, requestOptions);

不幸的是我得到了这个错误: Severe: com.stripe.exception.InvalidRequestException: No such customer: 'cus_****'; code: resource_missing; request-id: 从创建会话的行抛出。

有没有人知道如何解决这个问题。非常感谢。

发生这种情况是因为在结帐会话的 requestOptions 中,您正在设置与 setStripeAccount(CONNECTED_ACCOUNT_ID) 关联的帐户。客户创建没有这个,所以客户是在你的平台账户上创建的,而不是连接的账户。

如果您想在连接的帐户上进行会话,您也需要在那里创建客户。您应该将与 setStripeAccount(CONNECTED_ACCOUNT_ID) 相同的 requestOptions 添加到您的客户创建请求中。