Reputation: 2325
I just have a simple question, if i want my website to allow users to filling there credit card information rather than going to paypal for payment, do i need to pay for this service?
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();
}
I implemented this code and the sandbox is retrieving the payments, so this works, but my question is that do i need to pay paypal for this service allowing users to insert there card information and submit?
It says that Website Payment Pro or something.
Upvotes: 0
Views: 110
Reputation: 30477
Gateways like Payments Pro, Payflow Pro, or the newer and better Braintree Payments gateway can certainly options, with advanced features (which you may not need)
Depending on your needs, you may be satisfied with the newest JavaScript PayPal Checkout, which has a black Debit/Credit card button that expands.
Upvotes: 1