2016-08-11 5 views
3

СценарийУдаленный сервер возвратил ошибку: (401) Несанкционированный с PayPal

Здесь я делаю прямой платеж с кредитной карты с paypal, я храню детали CC в Paypal счет и paypal возврата кредитной карты токена, И я сохраняю этот номер токена в моей базе данных, чтобы делать прямой платеж. И используя этот токен, я могу делать прямую оплату с помощью учетной записи Sandbox. Но когда я делаю то же самое для реальной учетной записи, а не получаю ошибку, как следует.

The remote server returned an error: (401) Unauthorized.

Это становится в моей реакции на ошибку:

{"name":"UNAUTHORIZED_PAYMENT","message":"Unauthorized payment.","information_link":" https://developer.paypal.com/webapps/developer/docs/api/#UNAUTHORIZED_PAYMENT ","debug_id":"be6ad614a3843"}

Это код

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; 
} 

Если кто-то есть идеи по этому вопросу, чем пожалуйста, дайте мне знать. Или предложите мне, где я поступаю неправильно.

+0

Когда вы заходите на сайт developer.paypal.com и переходите на вкладку «Приложения», на что ссылается ссылка на право на участие в учетной записи слева? – timkly

ответ

1

Счастлив решить эту проблему через месяц,

Причины: Там не было никакой проблемы с моим кодом стороны, все было правильно, но была проблема с Paypal стороны. В моем аккаунте я не смог изменить Прямые кредитные карты Вариант разрешения «включить зеленый галочку». Но теперь он решается после долгого обсуждения командой Paypal.Вы можете увидеть ниже изображение. Надеюсь, этот ответ поможет и другим. enter image description here

Смежные вопросы