Exemplo n.º 1
0
        private void CheckoutWithTokenizedPayment(TokenizedPaymentInput tokenizedPaymentInput, Checkout checkout, ApplePayEventHandlerCompletion callback)
        {
            CartState.CheckoutWithTokenizedPayment(tokenizedPaymentInput, (ShopifyError error) => {
                if (error == null)
                {
                    callback(null);
                }
                else
                {
                    ApplePayEventResponse response = new ApplePayEventResponse(ApplePayAuthorizationStatus.Failure);

                    // Check to see if this is a recoverable user error
                    if (error.Type == ShopifyError.ErrorType.UserError)
                    {
                        var userErrors = CartState.UserErrors;
                        var status     = GetUpdateRequestStatusFromCheckoutUserErrors(userErrors);

                        if (status.AuthorizationStatus != ApplePayAuthorizationStatus.Failure)
                        {
                            var summaryItems = GetSummaryItemsFromCheckout(CartState.CurrentCheckout);
                            response         = new ApplePayEventResponse(status.AuthorizationStatus, summaryItems, GetShippingMethods(), status.Errors);
                        }
                    }

                    callback(response);
                }
            });
        }
Exemplo n.º 2
0
 /// <summary>
 /// Updates the cart state by sending the checkout token.
 /// </summary>
 /// <param name="tokenizedPaymentInput">
 /// A <see cref="TokenizedPaymentInput"> containing all information
 /// needed to complete the checkout.
 /// </param>
 /// <param name="message">
 /// A <see cref="NativeMessage"> object to call back to the Android plugin
 /// when the checkout is successful or failed.
 /// </param>
 private void PerformCheckout(TokenizedPaymentInput tokenizedPaymentInput, NativeMessage message)
 {
     CartState.CheckoutWithTokenizedPayment(tokenizedPaymentInput, (ShopifyError error) => {
         if (error == null)
         {
             AndroidPayCheckoutResponse.Status status = AndroidPayCheckoutResponse.Status.Success;
             message.Respond(new AndroidPayCheckoutResponse(status).ToJsonString());
             OnSuccess();
         }
         else
         {
             AndroidPayCheckoutResponse.Status status = AndroidPayCheckoutResponse.Status.Failure;
             message.Respond(new AndroidPayCheckoutResponse(status).ToJsonString());
             OnFailure(error);
         }
     });
 }