Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 条带支付模式-无此类客户例外_Java_Stripe Payments - Fatal编程技术网

Java 条带支付模式-无此类客户例外

Java 条带支付模式-无此类客户例外,java,stripe-payments,Java,Stripe Payments,我成功地将条带签出集成到Java web应用程序中 我想预先填充电子邮件和姓名字段。根据文档,我必须创建一个新客户,然后将其传递给会话。以下是代码的相关部分: Stripe.apiKey = retrieveKey("CLIENT_SECRET_KEY"); Map<String, Object> paramsC = new HashMap<>(); paramsC.put("descript

我成功地将条带签出集成到Java web应用程序中

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

        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);
Stripe.apiKey=retrieveKey(“客户机密钥”);
Map paramsC=新的HashMap();
参数put(“描述”,“我的第一个测试客户(为API文档创建)”;
参数put(“电子邮件”person@example.com");
参数put(“名称”、“某些名称”);
Customer=Customer.create(paramsC);
Map params=新的HashMap();
ArrayList paymentMethodTypes=新的ArrayList();
paymentMethodTypes.add(“卡”);
参数put(“付款方式类型”,paymentMethodTypes);
ArrayList lineItems=新的ArrayList();
HashMap lineItem=新建HashMap();
行项目。放置(“名称”、“不锈钢水瓶”);
行项目。卖出(“金额”,8834);
行项目。卖出(“货币”、“欧元”);
行项目。放置(“数量”,1);
lineItems.add(lineItem);
参数put(“行项目”,行项目);
参数put(“customer”,customer.getId());
参数put(“成功url”,域url);
参数put(“cancel_url”,DOMAIN_url+”/cancel.xhtml);
RequestOptions RequestOptions=RequestOptions.builder().setStripeAccount(CONNECTED_ACCOUNT_ID).build();
session=session.create(参数、请求选项);
不幸的是,我得到了这个错误:
Severe:com.stripe.exception.InvalidRequestException:没有这样的客户:“cus”****;代码:资源单元缺失;请求id:
从创建会话的行抛出


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

发生这种情况是因为在结账会话的
requestOptions
中,您正在使用
setStripeAccount(connected\u account\u ID)
设置连接帐户。客户创建没有此功能,因此客户是在您的平台帐户上创建的,而不是在连接的帐户上创建的


如果您想在已连接的帐户上进行会话,您还需要在那里创建客户。您应该向客户创建请求添加相同的
requestOptions
setStripeAccount(CONNECTED\u ACCOUNT\u ID)

是的,您是对的。它现在可以工作了。但我还是只得到了预先填好的地址,而没有卡主人的名字!无论如何,谢谢你。