3dsecure part 1
This commit is contained in:
32
.idea/assetWizardSettings.xml
generated
32
.idea/assetWizardSettings.xml
generated
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="WizardSettings">
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorWizard">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="children">
|
||||
<map>
|
||||
<entry key="vectorAssetStep">
|
||||
<value>
|
||||
<PersistentState>
|
||||
<option name="values">
|
||||
<map>
|
||||
<entry key="assetSourceType" value="FILE" />
|
||||
<entry key="outputName" value="ic_gift" />
|
||||
<entry key="sourceFile" value="$USER_HOME$/Downloads/toxic-warning-sign.svg" />
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</PersistentState>
|
||||
</value>
|
||||
</entry>
|
||||
</map>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
BIN
.idea/caches/gradle_models.ser
generated
BIN
.idea/caches/gradle_models.ser
generated
Binary file not shown.
8
.idea/compiler.xml
generated
Normal file
8
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<annotationProcessing>
|
||||
<profile default="true" name="Default" enabled="true" />
|
||||
</annotationProcessing>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/gradle.xml
generated
6
.idea/gradle.xml
generated
@@ -8,12 +8,6 @@
|
||||
</compositeConfiguration>
|
||||
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
<option name="resolveModulePerSourceSet" value="false" />
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
|
||||
35
.idea/misc.xml
generated
35
.idea/misc.xml
generated
@@ -1,40 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="NullableNotNullManager">
|
||||
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
|
||||
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
|
||||
<option name="myNullables">
|
||||
<value>
|
||||
<list size="10">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
|
||||
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
|
||||
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
|
||||
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
|
||||
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.Nullable" />
|
||||
<item index="6" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNullable" />
|
||||
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.Nullable" />
|
||||
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableDecl" />
|
||||
<item index="9" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NullableType" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
<option name="myNotNulls">
|
||||
<value>
|
||||
<list size="9">
|
||||
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
|
||||
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
|
||||
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
|
||||
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
|
||||
<item index="4" class="java.lang.String" itemvalue="androidx.annotation.NonNull" />
|
||||
<item index="5" class="java.lang.String" itemvalue="androidx.annotation.RecentlyNonNull" />
|
||||
<item index="6" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.qual.NonNull" />
|
||||
<item index="7" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullDecl" />
|
||||
<item index="8" class="java.lang.String" itemvalue="org.checkerframework.checker.nullness.compatqual.NonNullType" />
|
||||
</list>
|
||||
</value>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||
</component>
|
||||
|
||||
2
.idea/vcs.xml
generated
2
.idea/vcs.xml
generated
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -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') {
|
||||
|
||||
@@ -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=";
|
||||
|
||||
}
|
||||
|
||||
@@ -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<ResponseObject> checkOrderPrice(@Url String url,
|
||||
@FieldMap HashMap<String, Object> body);
|
||||
|
||||
@GET
|
||||
Call<ResponseObject<PaymentTokenModel>> createPaymentToken(@Url String url);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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<ResponseObject<CartInfoModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<CartInfoModel>> call, Response<ResponseObject<CartInfoModel>> 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<ResponseObject<PaymentTokenModel>> call = ApiService.apiInterface.createPaymentToken(
|
||||
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
|
||||
|
||||
call.enqueue(new Callback<ResponseObject<PaymentTokenModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<PaymentTokenModel>> call, Response<ResponseObject<PaymentTokenModel>> 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<ResponseObject<PaymentTokenModel>> 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();
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user