Exemplo n.º 1
0
        void HandleRequestCode(int requestCode, Result resultCode, JudoReceipt receipt)
        {
            if (resultCode == Result.Ok && receipt.Result != "Declined")
            {
                PaymentReceiptModel paymentReceipt;
                if ((paymentReceipt = receipt.FullReceipt as PaymentReceiptModel) != null)
                {
                    _judoSuccessCallback.Value(paymentReceipt);
                    Finish();
                }
            }
            else if (_judoFailureCallback.Value != null)
            {
                var judoError      = new JudoError();
                var paymentreceipt = receipt != null ? receipt.FullReceipt as PaymentReceiptModel : null;

                if (paymentreceipt != null)
                {
                    _judoFailureCallback.Value(judoError, paymentreceipt);
                    Finish();
                }
                else
                {
                    _judoFailureCallback.Value(judoError);
                    Finish();
                }
            }
        }
Exemplo n.º 2
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            JudoReceipt receipt    = null;
            string      msg_prefix = "";

            if (data != null)
            {
                var resultString = data.GetStringExtra(JudoSDKManager.JUDO_RECEIPT);
                if (resultString != null)
                {
                    var jsonResult = JsonConvert.DeserializeObject <PaymentReceiptModel> (resultString);
                    receipt = new JudoReceipt(jsonResult);
                }
                if (resultCode == Result.Canceled)
                {
                    Finish();
                }
                else if (resultCode == JudoSDKManager.JUDO_ERROR)
                {
                    var jsonError = data.GetStringExtra(JudoSDKManager.JUDO_ERROR_EXCEPTION);
                    var error     = (jsonError != null ? JsonConvert.DeserializeObject <JudoError> (data.GetStringExtra(JudoSDKManager.JUDO_ERROR_EXCEPTION)) : null);
                    PaymentReceiptModel paymentReceipt = null;
                    if (receipt != null)
                    {
                        paymentReceipt = receipt.FullReceipt as PaymentReceiptModel;
                    }

                    var innerError = new JudoError()
                    {
                        Exception = new Exception("Unknown Error"),
                        ApiError  = null
                    };
                    if (error != null)
                    {
                        innerError = new JudoError()
                        {
                            Exception = error.Exception,
                            ApiError  = error.ApiError
                        };
                    }
                    _judoFailureCallback.Value(innerError, paymentReceipt);

                    Finish();
                }
                else
                {
                    HandleRequestCode(requestCode, resultCode, receipt);
                }
            }
            Finish();
        }