payment methods part 3
This commit is contained in:
BIN
.idea/caches/build_file_checksums.ser
generated
BIN
.idea/caches/build_file_checksums.ser
generated
Binary file not shown.
@@ -35,6 +35,7 @@ dependencies {
|
||||
|
||||
implementation 'com.google.android.gms:play-services-base:15.0.1'
|
||||
implementation 'com.google.android.gms:play-services-location:15.0.1'
|
||||
implementation 'com.google.android.gms:play-services-wallet:15.0.1'
|
||||
|
||||
implementation 'com.squareup.retrofit2:retrofit:2.3.0'
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.3.0'
|
||||
|
||||
@@ -5,10 +5,14 @@ import android.os.Bundle;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
|
||||
import com.badoualy.stepperindicator.StepperIndicator;
|
||||
import com.braintreepayments.api.dropin.utils.PaymentMethodType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzapp.android.R;
|
||||
import ch.pizzapp.android.api.ApiConstants;
|
||||
import ch.pizzapp.android.fragment.createOrder.CreateOrderNoteFragment;
|
||||
import ch.pizzapp.android.fragment.createOrder.CreateOrderResultFragment;
|
||||
import ch.pizzapp.android.fragment.createOrder.CreateOrderSummaryFragment;
|
||||
@@ -35,6 +39,7 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
private String orderNote;
|
||||
private String discountAmount;
|
||||
private String couponCode;
|
||||
private ArrayList<PaymentMethodModel> paymentMethodList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
@@ -185,6 +190,27 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
this.selectedPaymentMethod = selectedPaymentMethod;
|
||||
}
|
||||
|
||||
public void setSelectedPaymentMethod(PaymentMethodType paymentMethodType){
|
||||
String paymentMethodCode = "";
|
||||
switch (paymentMethodType){
|
||||
case PAYPAL:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_PAYPAL;
|
||||
break;
|
||||
case ANDROID_PAY:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_ANDROID_PAY;
|
||||
break;
|
||||
default:
|
||||
paymentMethodCode = ApiConstants.PAYMENT_METHOD_CODE_CREDIT_DEBIT_CARD;
|
||||
break;
|
||||
}
|
||||
for(PaymentMethodModel paymentMethodModel : paymentMethodList){
|
||||
if(paymentMethodModel.getCode().equalsIgnoreCase(paymentMethodCode)){
|
||||
selectedPaymentMethod = paymentMethodModel;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String getOrderNote(){
|
||||
if(orderNote == null)
|
||||
orderNote = "";
|
||||
@@ -218,4 +244,8 @@ public class CreateOrderActivity extends BaseActivity {
|
||||
public void setCouponCode(String couponCode) {
|
||||
this.couponCode = couponCode;
|
||||
}
|
||||
|
||||
public void setPaymentMethodList(ArrayList<PaymentMethodModel> paymentMethodList) {
|
||||
this.paymentMethodList = paymentMethodList;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,4 +39,5 @@ public class ApiEndPoints {
|
||||
public static final String API_CHECK_CAMPAIGN_PIZZAPASS = PREFIX + "detectPizzaPassCampaign" + SUFFIX + "&token=";
|
||||
public static final String API_CHECK_CAMPAIGN_CHAMPAGNE = PREFIX + "detectChampagneCampaign" + SUFFIX + "&token=";
|
||||
public static final String API_CHECK_DELIVERY_TIME = PREFIX + "checkDeliveryTimeService" + SUFFIX + "&token=";
|
||||
public static final String API_CREATE_PAYMENT = PREFIX + "createPayment" + SUFFIX + "&token=";
|
||||
}
|
||||
|
||||
@@ -159,4 +159,8 @@ public interface ApiInterface {
|
||||
@GET(ApiEndPoints.API_CHECK_DELIVERY_TIME)
|
||||
Call<ResponseObject<Boolean>> checkDeliveryTime();
|
||||
|
||||
@FormUrlEncoded
|
||||
@POST
|
||||
Call<ResponseObject<Boolean>> createPayment(@Url String url, @FieldMap HashMap<String, Object> body);
|
||||
|
||||
}
|
||||
|
||||
@@ -14,16 +14,8 @@ 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.exceptions.BraintreeError;
|
||||
import com.braintreepayments.api.exceptions.ErrorWithResponse;
|
||||
import com.braintreepayments.api.interfaces.BraintreeCancelListener;
|
||||
import com.braintreepayments.api.interfaces.BraintreeErrorListener;
|
||||
import com.braintreepayments.api.interfaces.ConfigurationListener;
|
||||
import com.braintreepayments.api.interfaces.PaymentMethodNonceCallback;
|
||||
import com.braintreepayments.api.interfaces.PaymentMethodNonceCreatedListener;
|
||||
import com.braintreepayments.api.interfaces.PaymentMethodNoncesUpdatedListener;
|
||||
import com.braintreepayments.api.models.Configuration;
|
||||
import com.braintreepayments.api.models.PaymentMethodNonce;
|
||||
import com.google.android.gms.wallet.Cart;
|
||||
import com.google.android.gms.wallet.LineItem;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -83,10 +75,12 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
@BindString(R.string.restaurant_out_of_order) String restaurantOutOfOrderText;
|
||||
@BindString(R.string.something_went_wrong) String genericErrorText;
|
||||
@BindString(R.string.unknown_payment_method) String unknownPaymentMethodText;
|
||||
@BindString(R.string.payment_canceled) String paymentCanceledText;
|
||||
@BindString(R.string.andorid_pay_not_found) String androidPayNotFoundText;
|
||||
|
||||
public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment";
|
||||
private int REQUEST_CODE_CAMPAIGN_PRODUCT_LIST = 7847;
|
||||
private final int REQUEST_CODE_PAYMENT = 3784;
|
||||
private final int REQUEST_CODE_BRAINTREE_PAYMENT = 3784;
|
||||
private CreateOrderActivity createOrderActivity;
|
||||
|
||||
public CreateOrderSummaryFragment() {}
|
||||
@@ -115,19 +109,20 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
BaseActivity.setCurrentActivity(createOrderActivity);
|
||||
getCartProducts();
|
||||
}
|
||||
else if (requestCode == REQUEST_CODE_PAYMENT) {
|
||||
else if (requestCode == REQUEST_CODE_BRAINTREE_PAYMENT) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
DropInResult result = data.getParcelableExtra(DropInResult.EXTRA_DROP_IN_RESULT);
|
||||
Log.i("fjehfhreuf", "vjfjvjfv");
|
||||
//createOrder();
|
||||
createOrderActivity.setSelectedPaymentMethod(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);
|
||||
Log.i("fjehfhreuf", "vjfjvjfv");
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, error.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -140,7 +135,6 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
createOrderActivity.onPreviousClicked(FRAGMENT_NAME);
|
||||
break;
|
||||
case R.id.nextTextView:
|
||||
//createOrder();
|
||||
checkPizzapassCampaign();
|
||||
break;
|
||||
}
|
||||
@@ -359,7 +353,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
}
|
||||
else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.CASH ||
|
||||
createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TRANSFER){
|
||||
createOrder();
|
||||
createOrder(null);
|
||||
}
|
||||
else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TWINT) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
@@ -387,14 +381,37 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
DialogHelper.showFailedDialog();
|
||||
|
||||
|
||||
/*
|
||||
// dummy //
|
||||
|
||||
if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.UNKNOWN){
|
||||
DialogHelper.hideLoadingDialog();
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, unknownPaymentMethodText);
|
||||
}
|
||||
else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.CASH ||
|
||||
createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TRANSFER){
|
||||
createOrder(null);
|
||||
}
|
||||
else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TWINT) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
startTwintPayment();
|
||||
}
|
||||
else {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
startBraintreePayment();
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void createOrder(){
|
||||
private void createOrder(String paymentMethodNonce){
|
||||
DialogHelper.showLoadingDialog();
|
||||
Call<ResponseObject<Integer>> call = ApiService.apiInterface.createOrder(
|
||||
ApiEndPoints.API_CREATE_ORDER + SessionHelper.getCustomerToken().getToken(), getCreateOrderParams());
|
||||
ApiEndPoints.API_CREATE_ORDER + SessionHelper.getCustomerToken().getToken(), getCreateOrderParams(paymentMethodNonce));
|
||||
call.enqueue(new Callback<ResponseObject<Integer>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<Integer>> call, Response<ResponseObject<Integer>> response) {
|
||||
@@ -415,7 +432,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
});
|
||||
}
|
||||
|
||||
private HashMap<String, Object> getCreateOrderParams(){
|
||||
private HashMap<String, Object> getCreateOrderParams(String paymentMethodNonce){
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("customer_id", SessionHelper.getUser().getId());
|
||||
params.put("shipping_method_title", createOrderActivity.getSelectedShippingMethod().getTitle());
|
||||
@@ -424,6 +441,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
params.put("payment_method_title", createOrderActivity.getSelectedPaymentMethod().getTitle());
|
||||
params.put("payment_method_code", createOrderActivity.getSelectedPaymentMethod().getCode());
|
||||
params.put("comment", createOrderNote());
|
||||
if(paymentMethodNonce != null){
|
||||
params.put("payment_method_nonce", paymentMethodNonce);
|
||||
}
|
||||
return params;
|
||||
}
|
||||
|
||||
@@ -512,13 +532,74 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
|
||||
break;
|
||||
case ANDROID_PAY:
|
||||
paymentRequest.disablePayPal();
|
||||
if(getAndroidPayCart() == null){
|
||||
DialogHelper.showAlertDialog(BaseActivity.currentActivity, androidPayNotFoundText);
|
||||
return;
|
||||
}
|
||||
else {
|
||||
paymentRequest.androidPayCart(getAndroidPayCart());
|
||||
}
|
||||
break;
|
||||
}
|
||||
startActivityForResult(paymentRequest.getIntent(BaseActivity.currentActivity), REQUEST_CODE_PAYMENT);
|
||||
startActivityForResult(paymentRequest.getIntent(BaseActivity.currentActivity), REQUEST_CODE_BRAINTREE_PAYMENT);
|
||||
}
|
||||
|
||||
private void startTwintPayment(){
|
||||
|
||||
}
|
||||
|
||||
private void createBraintreePayment(final DropInResult dropInResult){
|
||||
DialogHelper.showLoadingDialog();
|
||||
Call<ResponseObject<Boolean>> call = ApiService.apiInterface.createPayment(
|
||||
ApiEndPoints.API_CREATE_PAYMENT + SessionHelper.getCustomerToken().getToken(),
|
||||
getBraintreePaymentParams(dropInResult));
|
||||
call.enqueue(new Callback<ResponseObject<Boolean>>() {
|
||||
@Override
|
||||
public void onResponse(Call<ResponseObject<Boolean>> call, final Response<ResponseObject<Boolean>> response) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
if(response.isSuccessful() &&
|
||||
response.body().getData() != null &&
|
||||
response.body().isSuccess()){
|
||||
createOrder(dropInResult.getPaymentMethodNonce().getNonce());
|
||||
}
|
||||
else {
|
||||
ApiErrorUtils.parseError(response);
|
||||
/*
|
||||
// dummy //
|
||||
createOrder(dropInResult.getPaymentMethodNonce().getNonce());
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<ResponseObject<Boolean>> call, Throwable t) {
|
||||
DialogHelper.hideLoadingDialog();
|
||||
DialogHelper.showFailedDialog();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private HashMap<String, Object> getBraintreePaymentParams(DropInResult dropInResult){
|
||||
HashMap<String, Object> params = new HashMap<>();
|
||||
params.put("payment_method_nonce", dropInResult.getPaymentMethodNonce().getNonce());
|
||||
return params;
|
||||
}
|
||||
|
||||
private Cart getAndroidPayCart() {
|
||||
return Cart.newBuilder()
|
||||
.setCurrencyCode("CHF")
|
||||
.setTotalPrice(PriceHelper.removeCurrencyFromPrice(createOrderActivity.getCartInfo().getCartTotalModel().getText()))
|
||||
/*
|
||||
.addLineItem(LineItem.newBuilder()
|
||||
.setCurrencyCode("CHF")
|
||||
.setDescription("Description")
|
||||
.setQuantity("1")
|
||||
.setUnitPrice("1.00")
|
||||
.setTotalPrice("1.00")
|
||||
.build())
|
||||
*/
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.google.android.gms.common.api.Api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindString;
|
||||
@@ -17,6 +19,7 @@ import ch.pizzapp.android.R;
|
||||
import ch.pizzapp.android.activity.BaseActivity;
|
||||
import ch.pizzapp.android.activity.CreateOrderActivity;
|
||||
import ch.pizzapp.android.adapter.recycler.PaymentMethodsRecyclerAdapter;
|
||||
import ch.pizzapp.android.api.ApiConstants;
|
||||
import ch.pizzapp.android.api.ApiEndPoints;
|
||||
import ch.pizzapp.android.api.ApiErrorUtils;
|
||||
import ch.pizzapp.android.api.ApiService;
|
||||
@@ -140,12 +143,38 @@ public class PaymentMethodFragment extends CreateOrderBaseFragment {
|
||||
|
||||
private void fillAndNotifyAdapter(ArrayList<PaymentMethodModel> paymentMethodModels){
|
||||
PaymentMethodModel.checkNull(paymentMethodModels);
|
||||
for(PaymentMethodModel paymentMethodModel : paymentMethodModels){
|
||||
if(paymentMethodModel.getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.APPLE_PAY){
|
||||
paymentMethodModels.remove(paymentMethodModel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
// dummy //
|
||||
PaymentMethodModel paypal = new PaymentMethodModel();
|
||||
paypal.setCode(ApiConstants.PAYMENT_METHOD_CODE_PAYPAL);
|
||||
paypal.setTitle("PAYPAL");
|
||||
paypal.setSortOrder("0");
|
||||
paymentMethodModels.add(paypal);
|
||||
*/
|
||||
|
||||
/*
|
||||
// dummy //
|
||||
PaymentMethodModel androidPay = new PaymentMethodModel();
|
||||
androidPay.setCode(ApiConstants.PAYMENT_METHOD_CODE_ANDROID_PAY);
|
||||
androidPay.setTitle("Android Pay");
|
||||
androidPay.setSortOrder("0");
|
||||
paymentMethodModels.add(androidPay);
|
||||
*/
|
||||
|
||||
|
||||
PaymentMethodModel.sort(paymentMethodModels);
|
||||
paymentMethodList.clear();
|
||||
paymentMethodList.addAll(paymentMethodModels);
|
||||
CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity();
|
||||
if(paymentMethodList.size() != 0){
|
||||
|
||||
CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity();
|
||||
if(createOrderActivity.getSelectedPaymentMethod() == null){
|
||||
paymentMethodList.get(0).setSelected(true);
|
||||
selectedPaymentMethod = paymentMethodList.get(0);
|
||||
@@ -161,6 +190,7 @@ public class PaymentMethodFragment extends CreateOrderBaseFragment {
|
||||
}
|
||||
|
||||
}
|
||||
createOrderActivity.setPaymentMethodList(paymentMethodList);
|
||||
paymentMethodsRecyclerAdapter.notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
@@ -173,6 +173,8 @@
|
||||
<string name="order_notee">NACHRICHT</string>
|
||||
<!--tr-->
|
||||
<string name="unknown_payment_method">Bilinmeyen ödeme yöntemi.</string>
|
||||
<string name="payment_canceled">Ödeme işlemi iptal edildi.</string>
|
||||
<string name="andorid_pay_not_found">Android Pay Card not found.</string>
|
||||
<!-- CreateOrderSummaryFragment-->
|
||||
|
||||
<!-- CreateOrderResultFragment-->
|
||||
|
||||
Reference in New Issue
Block a user