diff --git a/.idea/assetWizardSettings.xml b/.idea/assetWizardSettings.xml
deleted file mode 100644
index cf9fdec..0000000
--- a/.idea/assetWizardSettings.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 3f49bfb..a61cfc6 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
index 41dabbe..a155d80 100644
Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..a1757ae
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index f43d428..2996d53 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -8,12 +8,6 @@
-
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 51fa3e5..37a7509 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,40 +1,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..35eb1dd 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index cdac042..801d472 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -91,8 +91,8 @@ dependencies {
implementation 'com.wdullaer:materialdatetimepicker:3.6.3'
implementation 'io.nlopez.smartlocation:library:3.3.3'
implementation 'q.rorbin:badgeview:1.1.0'
- implementation 'com.braintreepayments.api:braintree:2.13.1'
- implementation('com.braintreepayments.api:drop-in:3.1.0') {
+ implementation 'com.braintreepayments.api:braintree:2.22.0'
+ implementation('com.braintreepayments.api:drop-in:3.7.1') {
exclude group: 'com.braintreepayments.api', module: 'braintree'
}
implementation('com.crashlytics.sdk.android:crashlytics:2.9.4@aar') {
diff --git a/app/src/main/java/ch/pizzapp/android/api/ApiEndPoints.java b/app/src/main/java/ch/pizzapp/android/api/ApiEndPoints.java
index 48118d4..3295b26 100644
--- a/app/src/main/java/ch/pizzapp/android/api/ApiEndPoints.java
+++ b/app/src/main/java/ch/pizzapp/android/api/ApiEndPoints.java
@@ -49,5 +49,6 @@ public class ApiEndPoints {
public static final String API_CREATE_PAYMENT = PREFIX + "checkBrainTreePayment" + SUFFIX + "&token=";
public static final String API_REPEAT_ORDER = PREFIX + "reOrder" + SUFFIX + "&token=";
public static final String API_CHECK_ORDER_PRICE = PREFIX + "checkOrderPrice" + SUFFIX + "&token=";
+ public static final String API_CREATE_PAYMENT_TOKEN = PREFIX + "createPaymentToken" + SUFFIX + "&token=";
}
diff --git a/app/src/main/java/ch/pizzapp/android/api/ApiInterface.java b/app/src/main/java/ch/pizzapp/android/api/ApiInterface.java
index eb43ed3..8e00c5b 100644
--- a/app/src/main/java/ch/pizzapp/android/api/ApiInterface.java
+++ b/app/src/main/java/ch/pizzapp/android/api/ApiInterface.java
@@ -11,6 +11,7 @@ import ch.pizzapp.android.model.CheckCouponModel;
import ch.pizzapp.android.model.CountryModel;
import ch.pizzapp.android.model.DeleteAddressResponseModel;
import ch.pizzapp.android.model.PaymentMethodsResponseModel;
+import ch.pizzapp.android.model.PaymentTokenModel;
import ch.pizzapp.android.model.RemoveProductFromCartResponseModel;
import ch.pizzapp.android.model.ShippingMethodModel;
import ch.pizzapp.android.model.StoreInfoModel;
@@ -229,6 +230,8 @@ public interface ApiInterface {
Call checkOrderPrice(@Url String url,
@FieldMap HashMap body);
+ @GET
+ Call> createPaymentToken(@Url String url);
diff --git a/app/src/main/java/ch/pizzapp/android/api/ApiService.java b/app/src/main/java/ch/pizzapp/android/api/ApiService.java
index 7179396..ff90680 100644
--- a/app/src/main/java/ch/pizzapp/android/api/ApiService.java
+++ b/app/src/main/java/ch/pizzapp/android/api/ApiService.java
@@ -50,7 +50,7 @@ public class ApiService {
HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); // set your desired log level
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
- //builder.addInterceptor(logging);
+ builder.addInterceptor(logging);
OkHttpClient client = builder.build();
diff --git a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
index 2673609..ad201e4 100644
--- a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
+++ b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
@@ -44,6 +44,7 @@ import ch.pizzapp.android.helper.PriceHelper;
import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.model.PaymentMethodModel;
+import ch.pizzapp.android.model.PaymentTokenModel;
import ch.pizzapp.android.model.StoreShiftModel;
import ch.pizzapp.android.model.StoreWorkDayModel;
import ch.pizzapp.android.model.cart.CartInfoModel;
@@ -93,6 +94,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
private OrderPriceRecyclerAdapter orderPriceRecyclerAdapter;
private ProductOnOrderSummaryRecyclerAdapter productOnOrderSummaryRecyclerAdapter;
private StoreShiftModel storeShiftModel;
+ private PaymentTokenModel braintreePaymentTokenModel;
public CreateOrderSummaryFragment() {}
@@ -121,7 +123,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
if (resultCode == Activity.RESULT_OK) {
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
createOrderActivity.setSelectedPaymentMethod(result.getPaymentMethodType());
- createBraintreePayment(result);
+ //createBraintreePayment(result);
// use the result to update your UI and send the payment method nonce to your server
} else if (resultCode == Activity.RESULT_CANCELED) {
// the user canceled
@@ -689,7 +691,6 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
call.enqueue(new Callback>() {
@Override
public void onResponse(Call> call, Response> response) {
- DialogHelper.hideLoadingDialog();
if(response.isSuccessful() &&
response.body().getData() != null &&
response.body().isSuccess()){
@@ -700,9 +701,12 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
cartTotalList.clear();
cartTotalList.addAll(cartInfoModel.getTotalsList());
orderPriceRecyclerAdapter.notifyDataSetChanged();
+ createPaymentToken();
}
- else
+ else {
+ DialogHelper.hideLoadingDialog();
ApiErrorUtils.parseError(response);
+ }
}
@Override
@@ -713,19 +717,55 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
});
}
+ private void createPaymentToken(){
+
+ Call> call = ApiService.apiInterface.createPaymentToken(
+ "/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
+
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ DialogHelper.hideLoadingDialog();
+ if(response.isSuccessful() &&
+ response.body().getData() != null &&
+ response.body().isSuccess()){
+ braintreePaymentTokenModel = response.body().getData();
+ Log.i("fuhrfuhruhfr", "fhurhfurfhurfh");
+ }
+ else {
+ ApiErrorUtils.parseError(response);
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
private void startBraintreePayment(){
// CVV kodu default olarak gozukmuyor.
// Gozukmesi için braintree'ye login ol
// Go to Settings --> Processing --> CVV --> Click on Edit --> Check option 'CVV not provided(l)', Enable option 'for any transaction'
+ if(braintreePaymentTokenModel == null ||braintreePaymentTokenModel.getToken().isEmpty()){
+ DialogHelper.showAlertDialog(BaseActivity.currentActivity, getString(R.string.something_went_wrong));
+ return;
+ }
+ String amountStringForBraintree = PriceHelper.removeCurrencyFromPrice(cartTotalList.get(cartTotalList.size() - 1).getText());
DropInRequest paymentRequest = new DropInRequest()
//.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_SANDBOX)
- .tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_PRODUCTION)
+ //.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_PRODUCTION)
//.clientToken("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI3NzY2ZmNmNTQ3MDc1YWMzMGZiNmIxMzU3MTI1ZTJmODc5YjM4MmNkOTcwYmYwZmYyNmQzMWJmNGRiYjI1MjQzfGNyZWF0ZWRfYXQ9MjAxOC0wNi0xM1QxODo1Mzo0Mi4wODA4MDc5MDQrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vMzQ4cGs5Y2dmM2JneXcyYiJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjp0cnVlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJBY21lIFdpZGdldHMsIEx0ZC4gKFNhbmRib3gpIiwiY2xpZW50SWQiOm51bGwsInByaXZhY3lVcmwiOiJodHRwOi8vZXhhbXBsZS5jb20vcHAiLCJ1c2VyQWdyZWVtZW50VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3RvcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6dHJ1ZSwiZW52aXJvbm1lbnROb05ldHdvcmsiOnRydWUsImVudmlyb25tZW50Ijoib2ZmbGluZSIsInVudmV0dGVkTWVyY2hhbnQiOmZhbHNlLCJicmFpbnRyZWVDbGllbnRJZCI6Im1hc3RlcmNsaWVudDMiLCJiaWxsaW5nQWdyZWVtZW50c0VuYWJsZWQiOnRydWUsIm1lcmNoYW50QWNjb3VudElkIjoiYWNtZXdpZGdldHNsdGRzYW5kYm94IiwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sIm1lcmNoYW50SWQiOiIzNDhwazljZ2YzYmd5dzJiIiwidmVubW8iOiJvZmYifQ==")
- //.amount("CHF1.0")
- //.requestThreeDSecureVerification(true)
+ .clientToken(braintreePaymentTokenModel.getToken())
+ .requestThreeDSecureVerification(true)
+ .amount(amountStringForBraintree)
.disableAndroidPay()
+ //.amount("1.00")
+ .requestThreeDSecureVerification(true)
.disableVenmo();
diff --git a/app/src/main/java/ch/pizzapp/android/model/PaymentTokenModel.java b/app/src/main/java/ch/pizzapp/android/model/PaymentTokenModel.java
new file mode 100644
index 0000000..ee62613
--- /dev/null
+++ b/app/src/main/java/ch/pizzapp/android/model/PaymentTokenModel.java
@@ -0,0 +1,14 @@
+package ch.pizzapp.android.model;
+
+public class PaymentTokenModel {
+
+ private String token;
+
+ public String getToken() {
+ return token != null ? token : "";
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+}
diff --git a/build.gradle b/build.gradle
index 5b5bd4f..70acfcf 100644
--- a/build.gradle
+++ b/build.gradle
@@ -7,7 +7,7 @@ buildscript {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
- classpath 'com.android.tools.build:gradle:3.3.0'
+ classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'io.fabric.tools:gradle:1.+'
// NOTE: Do not place your application dependencies here; they belong