Java Stripe android,在服务器上创建PaymentIntent并在android上确认,但创建需要\u payment\u方法错误
我正在跟踪文件: 在服务器端:Java Stripe android,在服务器上创建PaymentIntent并在android上确认,但创建需要\u payment\u方法错误,java,android,stripe-payments,Java,Android,Stripe Payments,我正在跟踪文件: 在服务器端: 创建了PaymentIntentCreateParams,我在这个对象上设置了货币和金额 使用PaymentIntentCreateParams clientSecretKey被发送到客户端(android) 在客户端: 从CardMultileWidget 使用PaymentMethodCreateParams和clientSecretKey 使用条带对象确认付款 以下是与此交易相关的付款: 显然,付款没有通过,我不明白为什么以及如何获得这种状态,我的付款方式
PaymentIntentCreateParams
,我在这个对象上设置了货币和金额PaymentIntentCreateParams
clientSecretKey
被发送到客户端(android)CardMultileWidget
PaymentMethodCreateParams
和clientSecretKey
条带
对象确认付款卡MultileWidget
上的付款方式,不是吗
如何在PaymentIntent
上设置付款方式
服务器
@PostMapping("/api/payment")
@ResponseBody
public String startPay(@RequestHeader Map<String, String> headers,
@RequestParam(name = "currency") String currency,
@RequestParam(name = "name") String name) throws Exception{
PaymentBody paymentBody = new PaymentBody(currency, name);
PaymentIntentCreateParams createParams = new PaymentIntentCreateParams.Builder()
.setCurrency(paymentBody.getCurrency())
.setAmount(100000L)
.addPaymentMethodType("card")
.build();
PaymentIntent intent = PaymentIntent.create(createParams);
Gson gson = new Gson().newBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(intent));
PaymentResponse paymentResponse = new PaymentResponse(ApiKey.PUBLISHABLE_KEY,
intent.getClientSecret(),
intent.getId(),
intent.getStatus());
return gson.toJson(paymentResponse);
}
@PostMapping(/api/payment)
@应答器
公共字符串startPay(@RequestHeader映射头,
@RequestParam(name=“currency”)字符串货币,
@RequestParam(name=“name”)字符串名)引发异常{
PaymentBody PaymentBody=新的PaymentBody(货币、名称);
PaymentIntentCreateParams createParams=新建PaymentIntentCreateParams.Builder()
.setCurrency(paymentBody.getCurrency())
.设定金额(100000升)
.addPaymentMethodType(“卡”)
.build();
PaymentIntent=PaymentIntent.create(createParams);
Gson Gson=new Gson().newBuilder().setPrettyPrinting().create();
System.out.println(gson.toJson(intent));
PaymentResponse PaymentResponse=新的PaymentResponse(ApiKey.PUBLISHABLE_KEY,
intent.getClientSecret(),
intent.getId(),
intent.getStatus());
返回gson.toJson(paymentResponse);
}
客户:
@Override
public void onPayClicked() {
mStripeApi.requestPaymentIntent("USD", "Name").enqueue(new Callback<PaymentResponse>() {
@Override
public void onResponse(Call<PaymentResponse> call, Response<PaymentResponse> response) {
PaymentMethodCreateParams paymentMethodCreateParams = mViewMvc.getCardDetails();
if(paymentMethodCreateParams == null) {
return;
}
mViewMvc.setResponse(response.body().getResponse());
ConfirmPaymentIntentParams confirmPaymentIntentParams = ConfirmPaymentIntentParams.
createWithPaymentMethodCreateParams(paymentMethodCreateParams, response.body().getClientSecret());
mStripe.confirmPayment(mFragmentActivity, confirmPaymentIntentParams);
}
@Override
public void onFailure(Call<PaymentResponse> call, Throwable t) {
}
});
}
@覆盖
在PayClicked()上公开作废{
mStripeApi.requestPaymentIntent(“USD”,“Name”).enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
PaymentMethodCreateParams PaymentMethodCreateParams=mViewMvc.getCardDetails();
如果(paymentMethodCreateParams==null){
返回;
}
mViewMvc.setResponse(response.body().getResponse());
ConfirmPaymentIntentParams ConfirmPaymentIntentParams=ConfirmPaymentIntentParams。
createWithPaymentMethodCreateParams(paymentMethodCreateParams,response.body().getClientSecret());
mStripe.confirmPayment(mFragmentActivity,confirmPaymentIntentParams);
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
}
你明白了吗?不,还没明白我也有同样的问题。我认为付款方式应该是客户设置付款详细信息时生成的条带令牌,但我不确定。