2 腿 OAuth 使用 Scribe - 相当于 php 的 java


2 legged OAuth using Scribe - java equivalent of php

我正在尝试使用 scribe 在 Java 中参照 php 代码实现 2 腿 OAuth。我相信我已经非常接近破解这个了。我当前的错误是:

**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();

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

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

从 http 实时更改为 https 时遇到了同样的问题。