如何获得获得从authoriz.net未结算交易列表?
上述图像显示在UI authorize未决事务列表。当我被getUnsettledTransactionList
API调用我收到的查询结果为空,为什么要求?
"response": {
"messages": {
"resultCode": "Ok",
"message": [
{
"code": "I00004",
"text": "No records found."
}
]
},
"totalNumInResultSet": 0
}
我在Authorize和NodeJs中使用沙箱帐户进行开发,基于以下代码
.html#transaction-reporting-get-unsettled-transaction-list
这是我的代码
function getUnsettledTransactionList() {
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName( process.env.SERVICE_CREDITCARD_API_APILOGINKEY );
merchantAuthenticationType.setTransactionKey( process.env.SERVICE_CREDITCARD_API_TRANSACTIONKEY );
var getRequest = new ApiContracts.GetUnsettledTransactionListRequest();
getRequest.setMerchantAuthentication(merchantAuthenticationType);
getRequest.setStatus(ApiContracts.TransactionGroupStatusEnum.PENDINGAPPROVAL);
//keeping promise resolve and reject funcs outside the promise scope
var promiseResolve, promiseReject;
var promise = new Promise( (_resolve, _reject)=>{
promiseResolve = _resolve;
promiseReject = _reject;
});
var ctrl = new ApiControllers.GetUnsettledTransactionListController(getRequest.getJSON());
ctrl.execute(function(){
var apiResponse = ctrl.getResponse();
var response = new ApiContracts.GetUnsettledTransactionListResponse(apiResponse);
if(response != null){
if(response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK){
var result = {
message: response.getMessages().getMessage()[0].getText(),
messageCode: response.getMessages().getMessage()[0].getCode(),
transactions: [],
status: true,
response: response
}
if(response.getTransactions() != null)
result.transactions = response.getTransactions().getTransaction();
promiseResolve( result );
}
else{
promiseReject({
resultCode: response.getMessages().getResultCode(),
errorCode: response.getMessages().getMessage()[0].getCode(),
errorMessage: response.getMessages().getMessage()[0].getText(),
status: false,
response: response
});
}
}
else{
promiseReject( { message: 'Null Response.', status: false } );
}
});
return promise;
}
回答如下:
您不应该为事务设置状态,删除此行代码。
getRequest.setStatus(ApiContracts.TransactionGroupStatusEnum.PENDINGAPPROVAL);
如果您在请求中添加此字段,则只会获得待批准的事务,并且您可能没有待批准的事务,因此您将获得一个空列表。
如何获得获得从authoriz.net未结算交易列表?
上述图像显示在UI authorize未决事务列表。当我被getUnsettledTransactionList
API调用我收到的查询结果为空,为什么要求?
"response": {
"messages": {
"resultCode": "Ok",
"message": [
{
"code": "I00004",
"text": "No records found."
}
]
},
"totalNumInResultSet": 0
}
我在Authorize和NodeJs中使用沙箱帐户进行开发,基于以下代码
.html#transaction-reporting-get-unsettled-transaction-list
这是我的代码
function getUnsettledTransactionList() {
var merchantAuthenticationType = new ApiContracts.MerchantAuthenticationType();
merchantAuthenticationType.setName( process.env.SERVICE_CREDITCARD_API_APILOGINKEY );
merchantAuthenticationType.setTransactionKey( process.env.SERVICE_CREDITCARD_API_TRANSACTIONKEY );
var getRequest = new ApiContracts.GetUnsettledTransactionListRequest();
getRequest.setMerchantAuthentication(merchantAuthenticationType);
getRequest.setStatus(ApiContracts.TransactionGroupStatusEnum.PENDINGAPPROVAL);
//keeping promise resolve and reject funcs outside the promise scope
var promiseResolve, promiseReject;
var promise = new Promise( (_resolve, _reject)=>{
promiseResolve = _resolve;
promiseReject = _reject;
});
var ctrl = new ApiControllers.GetUnsettledTransactionListController(getRequest.getJSON());
ctrl.execute(function(){
var apiResponse = ctrl.getResponse();
var response = new ApiContracts.GetUnsettledTransactionListResponse(apiResponse);
if(response != null){
if(response.getMessages().getResultCode() == ApiContracts.MessageTypeEnum.OK){
var result = {
message: response.getMessages().getMessage()[0].getText(),
messageCode: response.getMessages().getMessage()[0].getCode(),
transactions: [],
status: true,
response: response
}
if(response.getTransactions() != null)
result.transactions = response.getTransactions().getTransaction();
promiseResolve( result );
}
else{
promiseReject({
resultCode: response.getMessages().getResultCode(),
errorCode: response.getMessages().getMessage()[0].getCode(),
errorMessage: response.getMessages().getMessage()[0].getText(),
status: false,
response: response
});
}
}
else{
promiseReject( { message: 'Null Response.', status: false } );
}
});
return promise;
}
回答如下:
您不应该为事务设置状态,删除此行代码。
getRequest.setStatus(ApiContracts.TransactionGroupStatusEnum.PENDINGAPPROVAL);
如果您在请求中添加此字段,则只会获得待批准的事务,并且您可能没有待批准的事务,因此您将获得一个空列表。