Paypal のサイトのこの対話型ログインの例に従っています。
public ActionResult PaypalResponse(string scope, string code)
{
Dictionary<string, string> configurationMap = new Dictionary<string, string>();
configurationMap.Add("mode", "sandbox");
APIContext apiContext = new APIContext();
apiContext.Config = configurationMap;
CreateFromAuthorizationCodeParameters param = new CreateFromAuthorizationCodeParameters();
param.setClientId(clientId);
param.setClientSecret(clientSecret);
param.SetCode(code);
// Exception here:
Tokeninfo info = Tokeninfo.CreateFromAuthorizationCode(apiContext, param);
return null;
}
メソッド CreateFromAuthorizationCode は、この (間違った) 呼び出しになります。クライアント ID とクライアント シークレットが欠落していることに注意してください
POST https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: PayPalSDK/ ;lang=DOTNET;v=4.0.30319.18051;bit=64;os=Microsoft Windows 8 Enterprise 6.2.9200.0;
Host: api.sandbox.paypal.com
Content-Length: 211
Expect: 100-continue
Connection: Keep-Alive
grant_type=authorization_code&code=d2mSEzm9xvE_l9Ibho0g6FNBVrC7wHZchJWqJfY...redacted...
フィドラーの出力は
HTTP/1.1 400 Bad Request
Server: Apache-Coyote/1.1
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json
Vary: Accept-Encoding
Content-Length: 76
DC: origin1-api.sandbox.paypal.com
Date: Mon, 14 Oct 2013 01:30:05 GMT
Connection: close
Set-Cookie: DC=origin1-api.sandbox.paypal.com; secure
{"error_description":"client id or secret is null","error":"invalid_client"}