protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.token_payment);
            SetTitle(Resource.String.title_payment_token);
            cv2EntryView = FindViewById<CV2EntryView>(Resource.Id.cv2EntryView);

            SetHelpText(Resource.String.help_info, Resource.String.help_cv2_text);
            SetHelpText(Resource.String.help_postcode_title, Resource.String.help_postcode_text, Resource.Id.postCodeHelpButton);

            judoPaymentRef = Intent.GetStringExtra(JudoSDKManager.JUDO_PAYMENT_REF);

            judoAmount = decimal.Parse(Intent.GetStringExtra(JudoSDKManager.JUDO_AMOUNT));
            judoId = Intent.GetStringExtra(JudoSDKManager.JUDO_ID);
            judoCurrency = Intent.GetStringExtra(JudoSDKManager.JUDO_CURRENCY);
            judoCardToken = Intent.GetParcelableExtra(JudoSDKManager.JUDO_CARD_DETAILS).JavaCast<CardToken>();
            judoConsumer = Intent.GetParcelableExtra(JudoSDKManager.JUDO_CONSUMER).JavaCast<Consumer>();

            if (judoPaymentRef == null)
            {
                throw new ArgumentException("JUDO_PAYMENT_REF must be supplied");
            }
            if (judoConsumer == null)
            {
                throw new ArgumentException("JUDO_CONSUMER must be supplied");
            }
            if (judoAmount == null)
            {
                throw new ArgumentException("JUDO_AMOUNT must be supplied");
            } 
            if (judoId == null)
            {
                throw new ArgumentException("JUDO_ID must be supplied");
            }
            if (judoCurrency == null)
            {
                throw new ArgumentException("JUDO_CURRENCY must be supplied");
            }
            if (judoCardToken == null)
            {
                throw new ArgumentException("JUDO_CARD_DETAILS must be supplied");
            }

            cv2EntryView.SetCardDetails(judoCardToken);

            judoMetaData = Intent.GetParcelableExtra(JudoSDKManager.JUDO_META_DATA).JavaCast<MetaData>();

            var payButton = FindViewById<Button>(Resource.Id.payButton);

            payButton.Text = Resources.GetString(Resource.String.token_payment);
            payButton.Click += (sender, args) => TransactClickHandler(MakeTokenPayment);
        }
예제 #2
0
        public Intent TokenPreAuth(Context context, string judoId, string currency, string amount,
            string paymentReference, string consumerReference, CardToken cardToken, Dictionary<string, string> metaData, string consumerToken = null)
        {
            Intent intent = new Intent(context, typeof(PreAuthTokenActivity));
            intent.PutExtra(JudoSDKManager.JUDO_PAYMENT_REF, paymentReference);
            intent.PutExtra(JudoSDKManager.JUDO_CONSUMER, new Consumer(consumerReference, consumerToken));
            intent.PutExtra(JudoSDKManager.JUDO_AMOUNT, amount);
            intent.PutExtra(JudoSDKManager.JUDO_ID, judoId);
            intent.PutExtra(JudoSDKManager.JUDO_CURRENCY, currency);
            intent.PutExtra(JudoSDKManager.JUDO_CARD_DETAILS, cardToken);


            intent.PutExtra(JudoSDKManager.JUDO_META_DATA, new MetaData(metaData));

            return intent;
        }
예제 #3
0
        public static CardToken InitCardToken(string token, string consumerToken, string cv2, CardBase.CardType cardType, string expiryDate = null, string firstSix = null, string lastfour = null)
        {
            CardToken cd = new CardToken();

            cd.Token = token;
            cd.ConsumerToken = consumerToken;

            int cv2Number;

            if (!int.TryParse(cv2, out cv2Number))
            {
                throw new InvalidDataException("CV2");
            }

            cd.CardType = cardType;
            cd.ExpiryDate = expiryDate;
            cd.CardFirstSix = firstSix;
            cd.CardLastFour = lastfour;

            cd.IsValidCard();

            return cd;
        }
예제 #4
0
        private void payToken_Click(object sender, EventArgs e) 
        {
            if (string.IsNullOrWhiteSpace(consumerToken) || string.IsNullOrWhiteSpace(cardToken) 
                || string.IsNullOrWhiteSpace(rcp_consumerRef) || string.IsNullOrWhiteSpace(lastFour))
            {
                Toast.MakeText(this,
                    "Can't make a token payment before making a full card payment to save card token",
                    ToastLength.Short).Show();
                return;
            }

            var consumerReference = rcp_consumerRef;
            var token = new CardToken()
            {
                CardLastFour = lastFour,
                Token = cardToken,
                ConsumerToken = consumerToken,
                CardType = cardType
            };

            // Optional: Supply meta data about this transaction, pass as last argument instead of null.
            var intent = JudoSDKManager.UIMethods.TokenPayment(this, MY_JUDO_ID, currency, amount, paymentReference, consumerReference, token, null, consumerToken);

            StartActivityForResult(intent, ACTION_TOKEN_PAYMENT);

        }
예제 #5
0
 public void SetCardDetails(CardToken cardToken)
 {
     SetLast4CCNosText(cardToken.CardLastFour);
     SetCardType(cardToken.CardType);
 }