привет всем, я пытаюсь совершить транзакцию с Braintree и использую сервер рельсов Heroku. Я не могу получить client_token, и когда я пытаюсь совершить транзакцию, я получаю 404 не найден. Я использую демо-приложение из репозитория на GitHub. это соответствующий код из демонстрационного приложения.
import com.braintreepayments.demo.models.ClientToken;
import com.braintreepayments.demo.models.Transaction;
import retrofit.Callback;
import retrofit.http.Field;
import retrofit.http.FormUrlEncoded;
import retrofit.http.GET;
import retrofit.http.POST;
import retrofit.http.Query;
public interface ApiClient {
@GET("/client_token")
void getClientToken(@Query("customer_id") String customerId, @Query("merchant_account_id") String merchantAccountId, Callback<ClientToken> callback);
@FormUrlEncoded
@POST("/nonce/transaction")
void createTransaction(@Field("nonce") String nonce, Callback<Transaction> callback);
@FormUrlEncoded
@POST("/nonce/transaction")
//@POST("/checkout")
void createTransaction(@Field("nonce") String nonce, @Field("merchant_account_id") String merchantAccountId, Callback<Transaction> callback);
@FormUrlEncoded
@POST("/nonce/transaction")
void createTransaction(@Field("nonce") String nonce, @Field("merchant_account_id") String merchantAccountId, @Field("three_d_secure_required") boolean requireThreeDSecure, Callback<Transaction> callback);
}
и в транзакции деятельности
private void sendNonceToServer(PaymentMethodNonce nonce) {
Callback<Transaction> callback = new Callback<Transaction>() {
@Override
public void success(Transaction transaction, Response response) {
if (transaction.getMessage() != null &&
transaction.getMessage().startsWith("created")) {
setStatus(R.string.transaction_complete);
setMessage(transaction.getMessage());
} else {
setStatus(R.string.transaction_failed);
if (TextUtils.isEmpty(transaction.getMessage())) {
setMessage("Server response was empty or malformed");
} else {
setMessage(transaction.getMessage());
}
}
}
@Override
public void failure(RetrofitError error) {
Log.d("error",error.getResponse().getReason());
setStatus(R.string.transaction_failed);
setMessage("Unable to create a transaction. Response Code: " +
error.getResponse().getStatus() + " Response body: " +
error.getResponse().getBody());
}
};
if (Settings.isThreeDSecureEnabled(this) && Settings.isThreeDSecureRequired(this)) {
DemoApplication.getApiClient(this).createTransaction(nonce.getNonce(),
Settings.getThreeDSecureMerchantAccountId(this), true, callback);
} else if (Settings.isThreeDSecureEnabled(this)) {
DemoApplication.getApiClient(this).createTransaction(nonce.getNonce(),
Settings.getThreeDSecureMerchantAccountId(this), callback);
} else if (nonce instanceof CardNonce && ((CardNonce) nonce).getCardType().equals("UnionPay")) {
DemoApplication.getApiClient(this).createTransaction(nonce.getNonce(),
Settings.getUnionPayMerchantAccountId(this), callback);
} else {
DemoApplication.getApiClient(this).createTransaction(nonce.getNonce(), Settings.getMerchantAccountId(this),
callback);
}
}
как я уже сказал, я получаю client_token просто отлично, поэтому я знаю, что базовый URL-адрес в порядке, просто при отправке одноразового номера я получаю ошибку 404 not found при попытке совершить транзакцию.
спасибо за ваше время, если вам нужна дополнительная информация, которую я с удовольствием предоставлю.
edit: Я также получаю сообщение об ошибке, что учетная запись продавца не включена в белый список, и я понятия не имею, связано ли это с этим.
edit2 Я тоже не смог получить client_token, я ошибся, используя ключ токенизации