2脚OAuth使用Scribe - java相当于php

时间:2015-01-20 09:41:03

标签: java php oauth scribe

我试图使用scribe在Java中实现2脚OAuth并参考php代码。 我相信我非常接近破解这一点。我目前的错误是:

** OAuth - response.getBody:问题:signature_invalid |建议:> |

response.getCode():200 **

我怀疑在签署请求时,这与令牌的形式或缺少消费者对象有关。 在php中,代码是:

$consumer = new OAuthConsumer($consumer_key, $consumer_secret); 

//post transaction to pesapal

$iframe_src = OAuthRequest::from_consumer_and_token($consumer, $token, "GET", $iframelink, $params);
$iframe_src->set_parameter("oauth_callback", $callback_url);
$iframe_src->set_parameter("pesapal_request_data", $post_xml);
**$iframe_src->sign_request($signature_method, $consumer, $token);**   

从最后一行开始,为了对请求进行签名,使用者也作为参数传递。

我的代码如下:

OAuthService service = new ServiceBuilder()
         .provider(something.class)
         .signatureType(SignatureType.QueryString)
         .apiKey(consumer_key)
         .apiSecret(consumer_secret)
         .callback(callback_url)
         .build();

Token token = new Token("", "");

OAuthRequest request = new OAuthRequest(Verb.GET, iframelink);

request.addBodyParameter("pesapal_request_data", post_xml);
request.addOAuthParameter(OAuthConstants.SIGN_METHOD, signature_method);
service.signRequest(token, request);

Response response = request.send();

有人可以告诉我可能出错的地方吗? 我知道我很近 - 非常接近......

1 个答案:

答案 0 :(得分:0)

尝试将$ iframelink = http://www.pesapal.com/api/PostPesapalDirectOrderV4更改为$ iframelink = https://www.pesapal.com/api/PostPesapalDirectOrderV4

从http到https的实时更改时出现同样的问题。