首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs -使用Oauth发布数据(在开放银行项目中)

Nodejs -使用Oauth发布数据(在开放银行项目中)
EN

Stack Overflow用户
提问于 2016-10-31 22:38:55
回答 1查看 404关注 0票数 0

我试图发布一个开放的银行项目的数据,但我看不到我在代码中遗漏了什么。我使用NodeJs (webapplog.com/node-js-oauth1-0-and-oauth2-0-twitter-api-v1-1-examples).、API浏览器和OAuth.post()示例

GET工作很好,但是我在POST上一直有一个错误。下面是代码(看起来非常像sdk,有一个有效的密钥和秘密,我只是编写了2个新的app.get)。

注:在apisandbox openbankproject/index中,我创建了2个银行账户,一个拥有id 142842和1000欧元,另一个有id 163248和2000欧元。

这个(获取)获取帐户信息是有效的:

代码语言:javascript
复制
    app.get('/test', function(req, res){ 
      consumer.get("https://apisandbox.openbankproject.com/obp/v1.2.1/banks/rbs/accounts/142842/owner/account",
       req.session.oauthAccessToken,
       req.session.oauthAccessTokenSecret,
       function (error, data, response) {
         if (error) {console.log('error is ' + error);}
           var parsedData = JSON.parse(data);
           res.status(200).send(parsedData)
       });
    });

这一张(邮寄)付款不包括:

代码语言:javascript
复制
app.get('/pay', function(req, res){

  var requestData = {
    account_id : "163248",
    bank_id: "rbs" ,
    amount: "50.00"
  };
  consumer.post("https://apisandbox.openbankproject.com/obp/v1.2.1/banks/rbs/accounts/142842/owner/transactions",
    req.session.oauthAccessToken,
    req.session.oauthAccessTokenSecret,
    requestData,
    "application/json",
    function (error, data, response) {
      console.log(error);
      //console.log(data);
      //console.log(response);
  });

我知道这个错误:

代码语言:javascript
复制
{ statusCode: 404,
  data: '<!DOCTYPE html>\n<html> <body>The Requested URL /obp/v1.2.1/banks/rbs/accounts/142842/owner/transactions was not found on this server</body> </html>  \n  ' }

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-23 16:25:47

多亏了这个链接 (参见第165行),我终于可以回答我自己的问题了。

代码语言:javascript
复制
app.get('/pay', function(req, res){
  var fromBankId = "rbs";
  var fromAccountId = "163248";

  var toBankId = "rbs";
  var toAccountId = "163248";

  var currency = "EUR";
  var amount = "100.50";

  var description = "description test";


  var transactionRequestType = "SANDBOX_TAN";

  var toObj = {"bank_id": toBankId, "account_id": toAccountId};
  var valueObj = {"currency":currency, "amount":amount};

  var detailsObj = {"to": toObj, "value": valueObj, "description": description}
  var viewId = "owner"

  var details = JSON.stringify(detailsObj);

  var postUrl = "https://apisandbox.openbankproject.com" + "/obp/v2.1.0/banks/" + fromBankId + "/accounts/" + fromAccountId + "/" + viewId + "/transaction-request-types/" + transactionRequestType + "/transaction-requests";

consumer.post(postUrl,
  req.session.oauthAccessToken,
  req.session.oauthAccessTokenSecret,
  details, // This is the body of the request
  "application/json", // Must specify this else will get 404
  function (error, data, response) {

      var error = JSON.stringify(error)

      console.log("error is: " + error)
      console.log("data is: " + data)
      console.log("response is: " + response)


        try {
          var parsedData = JSON.parse(data);
          console.log("parsedData is: " + parsedData)
          message = ""
        } catch (err) {
            // handle the error safely
            console.log(err)
            message = "Something went wrong creating a transaction request - did you supply the correct values?"
        }
    });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40351605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档