我尝试在开放银行项目上发布数据,但我无法看到我的代码中缺少的内容。我使用NodeJs sdk,API explorer和OAuth.post()示例(webapplog.com/node-js-oauth1-0-and-oauth2-0-twitter-api-v1-1 -examples)。
GET工作正常,但我在POST时遇到错误。这是代码(看起来非常像sdk,有效密钥和秘密,我只写了2个新app.get)。
注意:在apisandbox openbankproject / index中,我创建了2个银行账户,一个账号为id 142842和1000EUR,另一个账号为id 163248和2000EUR。
这个(GET)获取帐户信息的工作原理:
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)
});
});
此付款(POST)不会:
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);
});
我收到此错误:
{ 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 ' }
感谢您的帮助!
答案 0 :(得分:0)
由于这个link,我终于可以回答我自己的问题了(见第165行)。
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?"
}
});
});