Я столкнулся с проблемой при попытке увеличить заряд с использованием тестовых учетных данных Stripe, когда вызывается функция (размещенная на AWS Lambda), возвращается исключение ниже.
Пока я много раз чистил / перестраивал проект. Проведя некоторые исследования, я наткнулся на эту проблему , которая указывает на Gson как на виновника, однако Gson не был зависимостью, и я даже безуспешно импортировал последнюю версию.
Charge
@Override
public String handleRequest(RequestClass requestClass, Context context) {
Stripe.apiKey = "HIDDEN";
try {
Map<String, Object> chargeParams = new HashMap<String, Object>();
chargeParams.put("amount", 2000);
chargeParams.put("currency", "usd");
chargeParams.put("description", "Charge for jenny.rosen@example.com");
chargeParams.put("source", "tok_mastercard");
Charge.create(chargeParams); //Exception points to this line
} catch (StripeException e) {
e.printStackTrace();
System.out.println("Error: " + e.getMessage());
}
return "--";
}
Журнал ошибок
{
"errorMessage": "com.google.gson.Gson.getDelegateAdapter(Lcom/google/gson/TypeAdapterFactory;Lcom/google/gson/reflect/TypeToken;)Lcom/google/gson/TypeAdapter;",
"errorType": "java.lang.NoSuchMethodError",
"stackTrace": [
"com.stripe.model.BalanceTransactionSourceTypeAdapterFactory.create(BalanceTransactionSourceTypeAdapterFactory.java:32)",
"com.google.gson.Gson.getAdapter(Gson.java:353)",
"com.google.gson.Gson.fromJson(Gson.java:754)",
"com.google.gson.Gson.fromJson(Gson.java:721)",
"com.google.gson.Gson.fromJson(Gson.java:670)",
"com.google.gson.Gson.fromJson(Gson.java:642)",
"com.stripe.net.LiveStripeResponseGetter.staticRequest(LiveStripeResponseGetter.java:538)",
"com.stripe.net.LiveStripeResponseGetter.request(LiveStripeResponseGetter.java:81)",
"com.stripe.net.ApiResource.request(ApiResource.java:190)",
"com.stripe.model.Charge.create(Charge.java:579)",
"com.stripe.model.Charge.create(Charge.java:567)",
"helloworld.AddCRM.handleRequest(AddCRM.java:33)",
"helloworld.AddCRM.handleRequest(AddCRM.java:16)"
]
}
Зависимость
(пробовал как с зависимостью Gson, так и без нее)
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-lambda-java-core</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.7.0</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.483</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.stripe</groupId>
<artifactId>stripe-java</artifactId>
<version>9.7.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
</dependencies>