У меня простой вопрос: если я хочу, чтобы на моем веб-сайте пользователи могли вводить данные кредитной карты, а не переходить на 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 или что-то в этом роде.