update braintree sdk
This commit is contained in:
@@ -79,8 +79,7 @@ dependencies {
|
||||
implementation 'com.wdullaer:materialdatetimepicker:4.2.3'
|
||||
implementation 'org.jsoup:jsoup:1.14.2'
|
||||
implementation 'me.relex:circleindicator:2.1.6'
|
||||
implementation 'com.braintreepayments.api:braintree:3.20.1'
|
||||
implementation 'com.braintreepayments.api:drop-in:5.4.1'
|
||||
implementation 'com.braintreepayments.api:drop-in:6.17.0'
|
||||
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import android.view.View;
|
||||
import android.webkit.WebView;
|
||||
|
||||
import com.badoualy.stepperindicator.StepperIndicator;
|
||||
import com.braintreepayments.api.dropin.utils.PaymentMethodType;
|
||||
import com.braintreepayments.api.DropInPaymentMethod;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
@@ -16,17 +16,27 @@ import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.api.ApiConstants;
|
||||
import ch.pizzalemon.android.api.ApiEndPoints;
|
||||
import ch.pizzalemon.android.api.ApiErrorUtils;
|
||||
import ch.pizzalemon.android.api.ApiService;
|
||||
import ch.pizzalemon.android.api.ResponseObject;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderNoteFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderResultFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderSummaryFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.PaymentMethodFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingAddressFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingMethodFragment;
|
||||
import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.PaymentMethodModel;
|
||||
import ch.pizzalemon.android.model.PaymentTokenModel;
|
||||
import ch.pizzalemon.android.model.ShippingMethodModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
import retrofit2.Call;
|
||||
import retrofit2.Callback;
|
||||
import retrofit2.Response;
|
||||
|
||||
public class CreateOrderActivity extends BaseActivity {
|
||||
|
||||
@@ -46,6 +56,8 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
private String couponCode;
|
||||
private ArrayList<PaymentMethodModel> paymentMethodList = new ArrayList<>();
|
||||
|
||||
private PaymentTokenModel paymentTokenModel = null;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
@@ -105,7 +117,7 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
break;
|
||||
case 4:
|
||||
fragmentManager.beginTransaction().replace(R.id.orderFragmentsContainer,
|
||||
CreateOrderSummaryFragment.newInstance()).commit();
|
||||
CreateOrderSummaryFragment.newInstance(paymentTokenModel)).commit();
|
||||
break;
|
||||
|
||||
case 5:
|
||||
@@ -128,7 +140,7 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
openFragment(3);
|
||||
break;
|
||||
case CreateOrderNoteFragment.FRAGMENT_NAME:
|
||||
openFragment(4);
|
||||
createBraintreePaymentTokenAndOpenSummaryFragment();
|
||||
break;
|
||||
case CreateOrderSummaryFragment.FRAGMENT_NAME:
|
||||
openFragment(5);
|
||||
@@ -212,13 +224,13 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
this.selectedPaymentMethod = selectedPaymentMethod;
|
||||
}
|
||||
|
||||
public void setSelectedPaymentMethodForBraintree(PaymentMethodType paymentMethodType){
|
||||
public void setSelectedPaymentMethodForBraintree(DropInPaymentMethod paymentMethodType){
|
||||
String paymentMethodCode = "";
|
||||
switch (paymentMethodType){
|
||||
case PAYPAL:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_PAYPAL;
|
||||
break;
|
||||
case GOOGLE_PAYMENT:
|
||||
case GOOGLE_PAY:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_ANDROID_PAY;
|
||||
break;
|
||||
default:
|
||||
@@ -250,6 +262,33 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
}
|
||||
}
|
||||
|
||||
private void createBraintreePaymentTokenAndOpenSummaryFragment(){
|
||||
DialogHelper.showLoadingDialog();
|
||||
Call<ResponseObject<PaymentTokenModel>> call = ApiService.apiInterface.createBraintreePaymentToken(
|
||||
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_BRAINTREE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
|
||||
|
||||
call.enqueue(new Callback<ResponseObject<PaymentTokenModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<PaymentTokenModel>> call, Response<ResponseObject<PaymentTokenModel>> response) {
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess() &&
|
||||
response.body().getData().getToken() != null){
|
||||
paymentTokenModel = response.body().getData();
|
||||
openFragment(4);
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseObject<PaymentTokenModel>> call, Throwable t) {
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
|
||||
@@ -16,12 +16,14 @@ import ch.pizzalemon.android.R;
|
||||
import ch.pizzalemon.android.api.ApiEndPoints;
|
||||
import ch.pizzalemon.android.api.ApiErrorUtils;
|
||||
import ch.pizzalemon.android.api.ApiService;
|
||||
import ch.pizzalemon.android.api.ResponseArray;
|
||||
import ch.pizzalemon.android.api.ResponseObject;
|
||||
import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.PriceHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.helper.ViewHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CustomerTokenModel;
|
||||
import ch.pizzalemon.android.model.UserModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
@@ -156,8 +158,7 @@ public class LoginActivity extends BaseActivity {
|
||||
response.body().isSuccess()){
|
||||
SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size());
|
||||
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText()));
|
||||
startActivity(new Intent(LoginActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
getUserAddress();
|
||||
|
||||
}
|
||||
else
|
||||
@@ -171,4 +172,35 @@ public class LoginActivity extends BaseActivity {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void getUserAddress(){
|
||||
Call<ResponseArray<AddressModel>> call = ApiService.apiInterface.getCustomerAddresses(
|
||||
SessionHelper.getSelectedStore().getStoreName(),
|
||||
SessionHelper.getCustomerToken().getToken());
|
||||
call.enqueue(new Callback<ResponseArray<AddressModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseArray<AddressModel>> call, Response<ResponseArray<AddressModel>> response) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
if (!response.body().getData().isEmpty()){
|
||||
SessionHelper.saveUserMainAddress(response.body().getData().get(0));
|
||||
}
|
||||
startActivity(new Intent(LoginActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseArray<AddressModel>> call, Throwable t) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -104,6 +104,9 @@ public class MyAddressesActivity extends BaseActivity {
|
||||
AddressModel.checkNull(addressModels);
|
||||
addressList.clear();
|
||||
addressList.addAll(addressModels);
|
||||
if (!addressList.isEmpty()) {
|
||||
SessionHelper.saveUserMainAddress(addressList.get(0));
|
||||
}
|
||||
addressesRecyclerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import ch.pizzalemon.android.helper.DialogHelper;
|
||||
import ch.pizzalemon.android.helper.SessionHelper;
|
||||
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.helper.ViewHelper;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CityModel;
|
||||
import ch.pizzalemon.android.model.CountryModel;
|
||||
import ch.pizzalemon.android.model.CustomerTokenModel;
|
||||
@@ -293,6 +294,9 @@ public class RegisterActivity extends BaseActivity {
|
||||
customerTokenModel.setStoreOfToken(SessionHelper.getSelectedStore());
|
||||
SharedPrefsHelper.saveCustomerToken(customerTokenModel);
|
||||
SharedPrefsHelper.setCustomerLoggedIn(true);
|
||||
SessionHelper.saveUserMainAddress(
|
||||
new AddressModel(appEditTextList.get(6).getText() + ", " + appEditTextList.get(7).getText() + ", " + selectedCityModel.getCity())
|
||||
);
|
||||
startActivity(new Intent(RegisterActivity.this, MainActivity.class));
|
||||
finishAffinity();
|
||||
}
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
package ch.pizzalemon.android.adapter.pager;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
import androidx.fragment.app.FragmentPagerAdapter;
|
||||
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderResultFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.CreateOrderSummaryFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.PaymentMethodFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingAddressFragment;
|
||||
import ch.pizzalemon.android.fragment.createOrder.ShippingMethodFragment;
|
||||
|
||||
/**
|
||||
* Created by cimenmus on 17/10/2017.
|
||||
*/
|
||||
|
||||
public class OrderPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
public OrderPagerAdapter(FragmentManager fm) {
|
||||
super(fm);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int position) {
|
||||
switch (position){
|
||||
case 0:
|
||||
return ShippingMethodFragment.newInstance();
|
||||
case 1:
|
||||
return ShippingAddressFragment.newInstance();
|
||||
case 2:
|
||||
return PaymentMethodFragment.newInstance();
|
||||
case 3:
|
||||
return CreateOrderSummaryFragment.newInstance();
|
||||
case 4:
|
||||
return CreateOrderResultFragment.newInstance();
|
||||
default:
|
||||
return ShippingMethodFragment.newInstance();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return 5;
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public CharSequence getPageTitle(int position) {
|
||||
return "Page " + position;
|
||||
}
|
||||
*/
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package ch.pizzalemon.android.fragment.createOrder;
|
||||
|
||||
import android.app.Activity;
|
||||
import static com.braintreepayments.api.ThreeDSecureRequest.VERSION_2;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -8,7 +9,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -19,10 +19,14 @@ import android.webkit.WebViewClient;
|
||||
|
||||
import com.afollestad.materialdialogs.DialogAction;
|
||||
import com.afollestad.materialdialogs.MaterialDialog;
|
||||
import com.braintreepayments.api.dropin.DropInActivity;
|
||||
import com.braintreepayments.api.dropin.DropInRequest;
|
||||
import com.braintreepayments.api.dropin.DropInResult;
|
||||
import com.braintreepayments.api.models.PayPalRequest;
|
||||
import com.braintreepayments.api.DropInClient;
|
||||
import com.braintreepayments.api.DropInListener;
|
||||
import com.braintreepayments.api.DropInRequest;
|
||||
import com.braintreepayments.api.DropInResult;
|
||||
import com.braintreepayments.api.PayPalRequest;
|
||||
import com.braintreepayments.api.ThreeDSecureAdditionalInformation;
|
||||
import com.braintreepayments.api.ThreeDSecurePostalAddress;
|
||||
import com.braintreepayments.api.ThreeDSecureRequest;
|
||||
import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
|
||||
import com.wdullaer.materialdatetimepicker.time.Timepoint;
|
||||
@@ -56,6 +60,7 @@ import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalemon.android.model.PaymentMethodModel;
|
||||
import ch.pizzalemon.android.model.PaymentTokenModel;
|
||||
import ch.pizzalemon.android.model.StoreShiftModel;
|
||||
import ch.pizzalemon.android.model.UserModel;
|
||||
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
||||
import ch.pizzalemon.android.model.cart.CartProductModel;
|
||||
import ch.pizzalemon.android.model.cart.CartTotalModel;
|
||||
@@ -68,7 +73,7 @@ import retrofit2.Response;
|
||||
* Created by cimenmus on 17/10/2017.
|
||||
*/
|
||||
|
||||
public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
public class CreateOrderSummaryFragment extends CreateOrderBaseFragment implements DropInListener {
|
||||
|
||||
@BindView(R.id.orderPersonFullnamePizzalinkInfoLayout) AppInfoView orderPersonFullnamePizzalinkInfoLayout;
|
||||
@BindView(R.id.orderShippingMethodPizzalinkInfoLayout) AppInfoView orderShippingMethodPizzalinkInfoLayout;
|
||||
@@ -105,10 +110,16 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
private StoreShiftModel storeShiftModel;
|
||||
private PaymentTokenModel braintreePaymentTokenModel;
|
||||
|
||||
private DropInClient dropInClient = null;
|
||||
|
||||
public CreateOrderSummaryFragment() {}
|
||||
|
||||
public static CreateOrderSummaryFragment newInstance() {
|
||||
return new CreateOrderSummaryFragment();
|
||||
public static CreateOrderSummaryFragment newInstance(PaymentTokenModel paymentTokenModel) {
|
||||
Bundle args = new Bundle();
|
||||
args.putSerializable("braintreePaymentTokenModel", paymentTokenModel);
|
||||
CreateOrderSummaryFragment fragment = new CreateOrderSummaryFragment();
|
||||
fragment.setArguments(args);
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -119,39 +130,33 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
||||
View view = inflater.inflate(R.layout.fragment_create_order_summary, container, false);
|
||||
getDataFromArguments();
|
||||
ButterKnife.bind(this, view);
|
||||
initViews();
|
||||
getCartProductsWithCommission();
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
createBraintreePaymentToken();
|
||||
private void getDataFromArguments(){
|
||||
braintreePaymentTokenModel = (PaymentTokenModel) getArguments().getSerializable("braintreePaymentTokenModel");
|
||||
if (braintreePaymentTokenModel != null && braintreePaymentTokenModel.getToken() != null){
|
||||
dropInClient = new DropInClient(CreateOrderSummaryFragment.this, braintreePaymentTokenModel.getToken());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == REQUEST_CODE_BRAINTREE_PAYMENT) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
|
||||
createOrderActivity.setSelectedPaymentMethodForBraintree(result.getPaymentMethodType());
|
||||
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
|
||||
Log.i("fjehfhreuf", "vjfjvjfv");
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, paymentCanceledText);
|
||||
} else {
|
||||
// handle errors here, an exception may be available in
|
||||
Exception error = (Exception) data.getSerializableExtra(DropInActivity.EXTRA_ERROR);
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, error.getMessage());
|
||||
}
|
||||
public void onDropInSuccess(@NonNull DropInResult dropInResult) {
|
||||
if (dropInResult.getPaymentMethodType() != null && dropInResult.getPaymentMethodNonce() != null){
|
||||
createOrderActivity.setSelectedPaymentMethodForBraintree(dropInResult.getPaymentMethodType());
|
||||
createBraintreePayment(dropInResult);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDropInFailure(@NonNull Exception error) {
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, error.getMessage());
|
||||
}
|
||||
|
||||
@OnClick({R.id.previousTextView, R.id.nextTextView})
|
||||
protected void onClick(View view){
|
||||
CreateOrderActivity createOrderActivity = (CreateOrderActivity) BaseActivity.currentActivity;
|
||||
@@ -869,46 +874,18 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
});
|
||||
}
|
||||
|
||||
private void createBraintreePaymentToken(){
|
||||
|
||||
Call<ResponseObject<PaymentTokenModel>> call = ApiService.apiInterface.createBraintreePaymentToken(
|
||||
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_CREATE_BRAINTREE_PAYMENT_TOKEN + SessionHelper.getCustomerToken().getToken());
|
||||
|
||||
call.enqueue(new Callback<ResponseObject<PaymentTokenModel>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<PaymentTokenModel>> call, Response<ResponseObject<PaymentTokenModel>> response) {
|
||||
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.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()){
|
||||
if(braintreePaymentTokenModel == null || braintreePaymentTokenModel.getToken().isEmpty() || dropInClient == null){
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, getString(R.string.something_went_wrong));
|
||||
return;
|
||||
}
|
||||
String amountStringForBraintree = PriceHelper.removeCurrencyFromPrice(createOrderActivity.getCartInfo().getCartTotalModel().getText());
|
||||
PayPalRequest paypalRequest = new PayPalRequest(amountStringForBraintree)
|
||||
.currencyCode("CHF");
|
||||
//.intent(PayPalRequest.INTENT_AUTHORIZE);
|
||||
//PayPalRequest paypalRequest = new PayPalRequest(amountStringForBraintree).currencyCode("CHF");//.intent(PayPalRequest.INTENT_AUTHORIZE);
|
||||
|
||||
/**
|
||||
* Paypal has two flow type: Vault and Checkout.
|
||||
@@ -926,17 +903,44 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
* https://developers.braintreepayments.com/guides/paypal/checkout-with-paypal/android/v3
|
||||
* https://developers.braintreepayments.com/guides/paypal/vault/javascript/v2
|
||||
*/
|
||||
DropInRequest paymentRequest = new DropInRequest()
|
||||
//.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_SANDBOX)
|
||||
//.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_PRODUCTION)
|
||||
//.clientToken("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI3NzY2ZmNmNTQ3MDc1YWMzMGZiNmIxMzU3MTI1ZTJmODc5YjM4MmNkOTcwYmYwZmYyNmQzMWJmNGRiYjI1MjQzfGNyZWF0ZWRfYXQ9MjAxOC0wNi0xM1QxODo1Mzo0Mi4wODA4MDc5MDQrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vMzQ4cGs5Y2dmM2JneXcyYiJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjp0cnVlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJBY21lIFdpZGdldHMsIEx0ZC4gKFNhbmRib3gpIiwiY2xpZW50SWQiOm51bGwsInByaXZhY3lVcmwiOiJodHRwOi8vZXhhbXBsZS5jb20vcHAiLCJ1c2VyQWdyZWVtZW50VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3RvcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6dHJ1ZSwiZW52aXJvbm1lbnROb05ldHdvcmsiOnRydWUsImVudmlyb25tZW50Ijoib2ZmbGluZSIsInVudmV0dGVkTWVyY2hhbnQiOmZhbHNlLCJicmFpbnRyZWVDbGllbnRJZCI6Im1hc3RlcmNsaWVudDMiLCJiaWxsaW5nQWdyZWVtZW50c0VuYWJsZWQiOnRydWUsIm1lcmNoYW50QWNjb3VudElkIjoiYWNtZXdpZGdldHNsdGRzYW5kYm94IiwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sIm1lcmNoYW50SWQiOiIzNDhwazljZ2YzYmd5dzJiIiwidmVubW8iOiJvZmYifQ==")
|
||||
.clientToken(braintreePaymentTokenModel.getToken())
|
||||
.requestThreeDSecureVerification(true)
|
||||
.amount(amountStringForBraintree)
|
||||
.disableGooglePayment()
|
||||
//.paypalRequest(paypalRequest)
|
||||
.disablePayPal()
|
||||
.disableVenmo();
|
||||
|
||||
UserModel user = SessionHelper.getUser();
|
||||
|
||||
ThreeDSecurePostalAddress threeDSecureBillingAddress = new ThreeDSecurePostalAddress();
|
||||
threeDSecureBillingAddress.setGivenName(user.getFirstname());
|
||||
threeDSecureBillingAddress.setSurname(user.getLastname());
|
||||
threeDSecureBillingAddress.setPhoneNumber(user.getTelephone());
|
||||
if (SessionHelper.getUserMainAddress() != null && SessionHelper.getUserMainAddress().getAddress() != null){
|
||||
threeDSecureBillingAddress.setExtendedAddress(SessionHelper.getUserMainAddress().getAddress());
|
||||
}
|
||||
|
||||
ThreeDSecurePostalAddress threeDSecureShippingAddress = new ThreeDSecurePostalAddress();
|
||||
threeDSecureShippingAddress.setGivenName(user.getFirstname());
|
||||
threeDSecureShippingAddress.setSurname(user.getLastname());
|
||||
threeDSecureShippingAddress.setPhoneNumber(user.getTelephone());
|
||||
threeDSecureShippingAddress.setExtendedAddress(createOrderActivity.getSelectedShippingAddress().getAddress());
|
||||
|
||||
ThreeDSecureAdditionalInformation ThreeDSecureAdditionalInformation = new ThreeDSecureAdditionalInformation();
|
||||
ThreeDSecureAdditionalInformation.setShippingAddress(threeDSecureShippingAddress);
|
||||
|
||||
ThreeDSecureRequest threeDSecureRequest = new ThreeDSecureRequest();
|
||||
threeDSecureRequest.setAmount(amountStringForBraintree);
|
||||
threeDSecureRequest.setEmail(user.getEmail());
|
||||
threeDSecureRequest.setBillingAddress(threeDSecureBillingAddress);
|
||||
threeDSecureRequest.setVersionRequested(VERSION_2);
|
||||
threeDSecureRequest.setAdditionalInformation(ThreeDSecureAdditionalInformation);
|
||||
|
||||
//DropInRequest paymentRequest = new DropInRequest(true);
|
||||
DropInRequest dropInRequest = new DropInRequest();
|
||||
dropInRequest.setThreeDSecureRequest(threeDSecureRequest);
|
||||
dropInRequest.setGooglePayDisabled(true);
|
||||
dropInRequest.setPayPalDisabled(true);
|
||||
dropInRequest.setVenmoDisabled(true);
|
||||
//paymentRequest.setPayPalRequest(paypalRequest);
|
||||
|
||||
dropInClient.setListener(this);
|
||||
dropInClient.launchDropIn(dropInRequest);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
@@ -960,7 +964,6 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
break;
|
||||
}
|
||||
*/
|
||||
startActivityForResult(paymentRequest.getIntent(BaseActivity.currentActivity), REQUEST_CODE_BRAINTREE_PAYMENT);
|
||||
}
|
||||
|
||||
private void createBraintreePayment(final DropInResult dropInResult){
|
||||
@@ -974,8 +977,8 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
createOrder(getCreateOrderParams(dropInResult.getPaymentMethodNonce().getNonce()));
|
||||
response.body().isSuccess() && dropInResult.getPaymentMethodNonce() != null){
|
||||
createOrder(getCreateOrderParams(dropInResult.getPaymentMethodNonce().getString()));
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
@@ -992,7 +995,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
|
||||
private HashMap<String, Object> getBraintreePaymentParams(DropInResult dropInResult){
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("payment_method_nonce", dropInResult.getPaymentMethodNonce().getNonce());
|
||||
params.put("payment_method_nonce", dropInResult.getPaymentMethodNonce().getString());
|
||||
params.put("amount", PriceHelper.removeCurrencyFromPrice(createOrderActivity.getCartInfo().getCartTotalModel().getText()));
|
||||
return params;
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CouponModel;
|
||||
import ch.pizzalemon.android.model.CouponType;
|
||||
import ch.pizzalemon.android.model.GeneralCouponModel;
|
||||
@@ -125,6 +126,14 @@ public class SessionHelper {
|
||||
SharedPrefsHelper.saveSessionId(sessionId);
|
||||
}
|
||||
|
||||
public static void saveUserMainAddress(AddressModel addressModel){
|
||||
SharedPrefsHelper.saveUserMainAddress(addressModel);
|
||||
}
|
||||
|
||||
public static AddressModel getUserMainAddress(){
|
||||
return SharedPrefsHelper.getUserMainAddress();
|
||||
}
|
||||
|
||||
public static Calendar getTokenDeathDate(String tokenDeathTime){
|
||||
|
||||
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
@@ -10,6 +10,7 @@ import java.util.ArrayList;
|
||||
|
||||
|
||||
import ch.pizzalemon.android.activity.BaseActivity;
|
||||
import ch.pizzalemon.android.model.AddressModel;
|
||||
import ch.pizzalemon.android.model.CategoryModel;
|
||||
import ch.pizzalemon.android.model.GeneralCouponModel;
|
||||
import ch.pizzalemon.android.model.PersonalCouponModel;
|
||||
@@ -41,6 +42,8 @@ public class SharedPrefsHelper {
|
||||
private static final String PREF_KEY_SELECTED_PERSONAL_COUPON = SHARED_PREFS_NAME + "selectedPersonalCoupon";
|
||||
private static final String PREF_KEY_SESSION_ID = SHARED_PREFS_NAME + "sessionId";
|
||||
|
||||
private static final String PREF_KEY_USER_MAIN_ADDRESS = SHARED_PREFS_NAME + "userMainAddress";
|
||||
|
||||
private static SharedPreferences sharedPreferences =
|
||||
BaseActivity.currentActivity
|
||||
.getSharedPreferences(SHARED_PREFS_NAME, MODE_PRIVATE);
|
||||
@@ -98,6 +101,7 @@ public class SharedPrefsHelper {
|
||||
editor.remove(PREF_KEY_SELECTED_GENERAL_COUPON);
|
||||
editor.remove(PREF_KEY_SELECTED_PERSONAL_COUPON);
|
||||
editor.remove(PREF_KEY_SESSION_ID);
|
||||
editor.remove(PREF_KEY_USER_MAIN_ADDRESS);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
@@ -227,6 +231,21 @@ public class SharedPrefsHelper {
|
||||
}
|
||||
|
||||
|
||||
public static void saveUserMainAddress(AddressModel addressModel){
|
||||
editor.putString(PREF_KEY_USER_MAIN_ADDRESS, gson.toJson(addressModel));
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
public static AddressModel getUserMainAddress(){
|
||||
return gson.fromJson(sharedPreferences.getString(PREF_KEY_USER_MAIN_ADDRESS, ""), AddressModel.class);
|
||||
}
|
||||
|
||||
public static void clearUserMainAddress(){
|
||||
editor.remove(PREF_KEY_USER_MAIN_ADDRESS);
|
||||
editor.apply();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
public static void saveCategoryList(ArrayList<Category> cats){
|
||||
|
||||
|
||||
@@ -18,6 +18,12 @@ public class AddressModel {
|
||||
private String address;
|
||||
private boolean isSelected;
|
||||
|
||||
public AddressModel(String address){
|
||||
id = "";
|
||||
this.address = address;
|
||||
isSelected = true;
|
||||
}
|
||||
|
||||
private void checkNull(){
|
||||
|
||||
if(id == null)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package ch.pizzalemon.android.model;
|
||||
|
||||
public class PaymentTokenModel {
|
||||
import java.io.Serializable;
|
||||
|
||||
public class PaymentTokenModel implements Serializable {
|
||||
|
||||
private String token;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user