Scenario
Here I am doing direct payment with Credit Card with paypal, I am storing CC details in paypal account and paypal return Credit Card Token, And I am saving this Token number in my Database to do direct payment, And by the use of this token I am able to do direct payment with Sandbox account But when I am doing the same for live account than getting error as follow.
The remote server returned an error: (401) Unauthorized.
This is getting in my error response :
{"name":"UNAUTHORIZED_PAYMENT","message":"Unauthorized payment.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#UNAUTHORIZED_PAYMENT","debug_id":"be6ad614a3843"}
This is code
try
{
Dictionary<string, string> sdkConfig = new Dictionary<string, string>();
sdkConfig.Add("mode", "live");
string accessToken = new OAuthTokenCredential(PayPalConfig.PaypalClientId, PayPalConfig.PaypalClientSecret, sdkConfig).GetAccessToken();
APIContext apiContext = new APIContext(accessToken);
apiContext.Config = sdkConfig;
// Items within a transaction.
var item = new Item()
{
name = "Item Name",
currency = "USD",
price = "1",
quantity = "8",
sku = "sku"
};
// A resource representing a credit card that can be used to fund a payment.
var credCardToken = new CreditCardToken()
{
credit_card_id = "Here CC Token Number"
};
var amnt = new Amount()
{
currency = "USD",
total = "10",
details = new Details()
{
shipping = "1",
subtotal = "8",
tax = "1"
}
};
// A transaction defines the contract of a
// payment - what is the payment for and who
// is fulfilling it.
var tran = new Transaction()
{
amount = amnt,
description = "This is the payment transaction description.",
item_list = new ItemList() { items = new List<Item>() { item } }
};
// A resource representing a Payer's funding instrument. For stored credit card payments, set the CreditCardToken field on this object.
var fundInstrument = new FundingInstrument()
{
credit_card_token = credCardToken
};
// A Payment Resource; create one using the above types and intent as 'sale'
var pymnt = new Payment()
{
intent = "sale",
payer = new Payer()
{
funding_instruments = new List<FundingInstrument>() { fundInstrument },
payment_method = "credit_card"
},
transactions = new List<Transaction>() { tran }
};
// Create a payment using a valid APIContext
var createdPayment = pymnt.Create(apiContext);
}
catch (Exception ex)
{
throw;
}
If some one have any idea about this issue than please let me know. Or suggest me where I am doing wrong.
