我正在尝试使用此代码从条带中删除卡片:
首先尝试:
com.stripe.Stripe.apiKey = getString(R.string.stripe_test_secret_key);
com.stripe.model.Token token = com.stripe.model.Token.retrieve(CardId);
String cardId = token.getCard().getId();
customer = Customer.retrieve(payments.appPreference.getStripeCustomerId());
DeletedExternalAccount delete = customer.getSources().retrieve(cardId).delete();
错误: 我收到com.stripe.exception.InvalidRequestException:没有这样的来源:card_xxxxxxxxxxxxxxxxxxxxxx; request-id:req_xxxxxxxxxxxx
第二次尝试:
com.stripe.Stripe.apiKey = getString(R.string.stripe_test_secret_key);
com.stripe.model.Token token = com.stripe.model.Token.retrieve(CardId);
DeletedCard delete = token.getCard().delete();
错误: com.stripe.exception.APIConnectionException:对Stripe(https://api.stripe.com)的API请求期间的IOException:null请检查您的Internet连接,然后重试。如果此问题仍然存在,您应该在https://twitter.com/stripestatus查看条纹的服务状态,或通过support@stripe.com告诉我们。
引起:java.net.MalformedURLException
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
在Android应用程序中无法执行此操作,因为这些调用需要您的Secret API密钥。您不应该在Android应用程序中使用Secret API密钥,否则攻击者可以获取它,然后代表您创建费用,退款或转移。
您需要做的是处理此代码服务器端。您将调用删除卡[API] [1],并确保在代码中传递正确的客户和卡ID。在Java中,但在服务器端,您可以这样做:
Customer customer = Customer.retrieve("cus_XXXXXXX");
customer.getSources().retrieve("card_YYYYYY").delete();
答案 1 :(得分:0)
@koopajah是对的。从移动端来看并不安全。
之所以发生这种情况,是因为我创建了令牌,但没有为创建卡而调用api。 令牌有Card对象,但它没有分配给任何客户端。所以,我收到了这个错误。