Использование Paypal Express Checkout с помощью кредитной карты - PullRequest
0 голосов
/ 16 июня 2020

У меня простой вопрос: если я хочу, чтобы на моем веб-сайте пользователи могли вводить данные кредитной карты, а не переходить на PayPal для оплаты, нужно ли мне платить за эту услугу?

public ActionResult Checkout()
    {
        //create and item for which you are taking payment
        //if you need to add more items in the list
        //Then you will need to create multiple item objects or use some loop to instantiate object
        Item item = new Item();
        item.name = "Demo Item";
        item.currency = "USD";
        item.price = "5";
        item.quantity = "1";
        item.sku = "sku";

        //Now make a List of Item and add the above item to it
        //you can create as many items as you want and add to this list
        List<Item> itms = new List<Item>();
        itms.Add(item);
        ItemList itemList = new ItemList();
        itemList.items = itms;

        //Address for the payment
        Address billingAddress = new Address();
        billingAddress.city = "NewYork";
        billingAddress.country_code = "US";
        billingAddress.line1 = "23rd street kew gardens";
        billingAddress.postal_code = "43210";
        billingAddress.state = "NY";


        //Now Create an object of credit card and add above details to it
        //Please replace your credit card details over here which you got from paypal
        CreditCard crdtCard = new CreditCard();
        crdtCard.billing_address = billingAddress;
        crdtCard.cvv2 = "874";  //card cvv2 number
        crdtCard.expire_month = 7; //card expire date
        crdtCard.expire_year = 2025; //card expire year
        crdtCard.first_name = "Aman";
        crdtCard.last_name = "Thakur";
        crdtCard.number = "4137354036661279"; //enter your credit card number here
        crdtCard.type = "visa"; //credit card type here paypal allows 4 types

        // Specify details of your payment amount.
        Details details = new Details();
        details.shipping = "1";
        details.subtotal = "5";
        details.tax = "1";

        // Specify your total payment amount and assign the details object
        Amount amnt = new Amount();
        amnt.currency = "USD";
        // Total = shipping tax + subtotal.
        amnt.total = "7";
        amnt.details = details;

        // Now make a transaction object and assign the Amount object
        Transaction tran = new Transaction();
        tran.amount = amnt;
        tran.description = "Description about the payment amount.";
        tran.item_list = itemList;
        tran.invoice_number = Guid.NewGuid().ToString().Replace("-", "");

        // Now, we have to make a list of transaction and add the transactions object
        // to this list. You can create one or more object as per your requirements

        List<Transaction> transactions = new List<Transaction>();
        transactions.Add(tran);

        // Now we need to specify the FundingInstrument of the Payer
        // for credit card payments, set the CreditCard which we made above

        FundingInstrument fundInstrument = new FundingInstrument();
        fundInstrument.credit_card = crdtCard;

        // The Payment creation API requires a list of FundingIntrument

        List<FundingInstrument> fundingInstrumentList = new List<FundingInstrument>();
        fundingInstrumentList.Add(fundInstrument);

        // Now create Payer object and assign the fundinginstrument list to the object
        Payer payr = new Payer();
        payr.funding_instruments = fundingInstrumentList;
        payr.payment_method = "credit_card";

        // finally create the payment object and assign the payer object & transaction list to it
        Payment pymnt = new Payment();
        pymnt.intent = "sale";
        pymnt.payer = payr;
        pymnt.transactions = transactions;

        try
        {
            //getting context from the paypal
            //basically we are sending the clientID and clientSecret key in this function
            //to the get the context from the paypal API to make the payment
            //for which we have created the object above.

            //Basically, apiContext object has a accesstoken which is sent by the paypal
            //to authenticate the payment to facilitator account.
            //An access token could be an alphanumeric string

            APIContext apiContext = PayPalConfiguration.GetAPIContext();

            //Create is a Payment class function which actually sends the payment details
            //to the paypal API for the payment. The function is passed with the ApiContext
            //which we received above.

            Payment createdPayment = pymnt.Create(apiContext);

            //if the createdPayment.state is "approved" it means the payment was successful else not

            if (createdPayment.state.ToLower() != "approved")
            {
                return View("FailureView");
            }
        }
        catch (PayPal.PayPalException ex)
        {
            return View("FailureView");
        }

        return View();
    }

Я реализовал этот код, и песочница получает платежи, так что это работает, но мой вопрос заключается в том, нужно ли мне платить PayPal за эту услугу, позволяющую пользователям вставлять туда информацию о карте и отправлять? Платеж Pro или что-то в этом роде.

1 Ответ

1 голос
/ 16 июня 2020

шлюзов, таких как Payments Pro, Payflow Pro или более новые и лучшие Платежный шлюз Braintree , безусловно, могут иметь дополнительные возможности с расширенными функциями (которые могут вам не понадобиться)

В зависимости от ваших потребностей, Возможно, вам понравится новейший JavaScript PayPal Checkout , который имеет расширяющуюся черную кнопку дебетовой / кредитной карты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...