2015-07-22 167 views
0

这是我在贝宝捕捉支付宝

OAuthTokenCredential tokenCredential = new OAuthTokenCredential("<CLIENT_ID>", "<CLIENT_SECRET>"); 

var accessToken = tokenCredential.GetAccessToken(); 
Authorization authorization = Authorization.Get(accessToken, "5RA45624N3531924N"); 

Capture capture = new Capture(); 
Amount captureAmount = new Amount(); 
captureAmount.currency = "USD"; 
captureAmount.total = "1"; 
capture.amount = captureAmount; 
capture.is_final_capture = true; 

Capture responseCapture = authorization.Capture(accessToken, capture); 

用于捕获支付代码,但它说

参数类型“串”不分配给参数类型“PayPal.Api.APIContext '

在下面的行accessToken参数

Authorization authorization = Authorization.Get(accessToken, "5RA45624N3531924N"); 

我该如何解决这个问题?

回答

0

您在第一个参数中指定了令牌,但它不正确。

根据下面的定义:

public static Authorization Get(APIContext apiContext, string authorizationId) 

应指定APICONTEXT类型。

你可以尝试像下面的代码:

var apiContext = Configuration.GetAPIContext(); 
var authorization = Authorization.Get(apiContext, authorizationId); 
0

创建一个新类 'Configuration.cs'。

public static class Configuration 
{ 
    public readonly static string ClientId; 
    public readonly static string ClientSecret; 

    static Configuration() 
    { 
     var config = GetConfig(); 
     ClientId = config["clientId"]; 
     ClientSecret = config["clientSecret"]; 
    } 

    public static Dictionary<string,string> GetConfig() 
    { 
     return PayPal.Api.ConfigManager.Instance.GetProperties(); 
    } 

    private static string GetAccessToken() 
    { 
     var config = GetConfig(); 
     OAuthTokenCredential credential = new OAuthTokenCredential(ClientId, ClientSecret, config); 
     string accessToken = credential.GetAccessToken(); 
     return accessToken; 
    } 

    public static APIContext GetAPIContext() 
    { 
     string accessToken = GetAccessToken(); 
     APIContext apiContext = new APIContext(accessToken); 
     apiContext.Config = GetConfig(); 
     return apiContext; 
    } 

} 

GetAPIContext方法将返回APICONTEXT对象。将该对象作为参数传递给Authorization.Get方法,而不是“accessToken”。

APIContext apiContext = Configuration.GetAPIContext(); 
Authorization authorization = Authorization.Get(apiContext, "6SY29185GS4409204");//Provide Payment Id returned after authorizing payment.