我想知道如何使用存储的信用卡建立一个收费。
使用/card接口,我已经成功地将卡存储在QuickBooks网上,并收到卡id作为回报。现在我想用储值卡来充电。对于创建一个收费,我看到有两种方式提供卡的细节。
我试着使用它的Id检索存储卡,然后在收费中使用返回的卡详细信息,但它没有起作用。
因此,我想知道,如何通过使用存储的信用卡,而不需要提供明确的信用卡细节每次收费。
更新
我试过遵循测试代码,但它给了我'card.number是无效‘错误。
public Charge createCharge(Context context, String requestId) {
String uri = "https://sandbox.api.intuit.com/quickbooks/v4/payments/charges";
PaymentService paymentService = new PaymentService();
Charge charge = new Charge();
CreditCard card = null;
try {
card = paymentService.getCreditCard(context, getRequestId(), "https://sandbox.api.intuit.com/quickbooks/v4/customers/{customer_id}/cards/{card_id}");
} catch (Exception e) {
e.printStackTrace();
}
charge.setCard(card);
charge.setAmount(new BigDecimal(10.55));
charge.setCurrency("USD");
try {
charge = paymentService.createCharge(context, getRequestId(), charge, uri);
return charge;
} catch (Exception e) {
}
}
Error com.intuit.ipp.exception.BadRequestException: ERROR CODE:PMT-4000, ERROR MESSAGE:card.number is invalid., ERROR DETAIL:card.number, MORE ERROR DETAIL:HttpStatusCode=400; Type=invalid_request; MoreInfo=Credit/Debit card number format, InfoLink=https://developer.intuit.com/v2/docs?redirectID=PayErrors
我使用卡id检索的卡号(显然)被混淆,并且格式为"xxxxxxxxxxxx1111“,因此/charges api抱怨它无效。
发布于 2017-12-26 13:43:44
使用此API端点存储卡片详细信息(“创建卡片”):
您将得到一个唯一的id
值。
使用此API端点创建计费:
确保对cardOnFile
传递从第一个API调用返回的id
值。
您当前的代码不正确。在您应该将cardOnFile
作为param传递的地方,您将传递card
节点(这需要一个完整的卡号,而不是一个卡片id
值)。具体来说,这一行是不正确的:
Charge.setCard(卡片);
https://stackoverflow.com/questions/47979320
复制相似问题