2015-05-13 2 views
1

Я попытался вызвать API аутентификации, используя API-интерфейс escrow REST. Однако я не получаю никакого действительного ответа от API аутентификации.Как работает аутентификация условного депонирования?

Я использовал метод Codeigniter CURL для размещения переменных с URL https://stgsecureapi.escrow.com/api/Transaction , однако он все еще не работает для меня.

я получаю следующий ответ: Authentication отказано

Пожалуйста, помогите мне, если какой-либо один есть идея разрешить из этого.

код я использую:

//The JSON data. 
    $url = 'https://stgsecureapi.escrow.com/api/Transaction'; 

    $jsonData = array(
     'username' => '*****@gmail.com', 
     'password' => '****', 
    'pid' => '***' 
    ); 

    //Encode the array into JSON. 
    $jsonDataEncoded = json_encode($jsonData); 
    print_r($jsonDataEncoded); 
    // Start session (also wipes existing/previous sessions) 
    $this->curl->create($url); 

    // Option   
    $this->curl->option(CURLOPT_HTTPHEADER, array('Content-type: application/json; Charset=UTF-8')); 

    // Post - If you do not use post, it will just run a GET request    
    $this->curl->post($jsonDataEncoded); 

    // Execute - returns responce 
    $this->data['curlreturn'] = $this->curl->execute(); 
    //exit; 
    $this->load->view('pay/pay', $this->data); 
+0

Вы используете SOAP UI? –

+0

Нет, я использую REST Integration KIT, предоставленный Escrow. –

+0

Похоже на ошибку в элементе запроса. Верните элемент запроса еще раз –

ответ

1

Я получил ответ на Escrow с населением XML ..

Также проверьте функцию, что я используется для вызова API с CURL

$requeste = '<Transaction xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/DTO"> 
<Title>XML GM Broker Transaction (REST Service)</Title> 
<Description>XML GM Broker Transaction (REST Service)</Description> 
<TransactionType>1</TransactionType> 
<Partner>PartnerId>1234</PartnerId></Partner><Buyer> 
<Email>[email protected]</Email><Initiator>false</Initiator> 
<CompanyChk>false</CompanyChk><AutoAgree>true</AutoAgree> 
<AgreementChecked>true<AgreementChecked></Buyer> 
<Seller><Email>[email protected]</Email><Initiator>false</Initiator> 
<CompanyChk>false</CompanyChk><AutoAgree>true<AutoAgree> 
<AgreementChecked>true</AgreementChecked></Seller><Broker> 
<Email>[email protected]</Email><Initiator>true</Initiator> 
<CompanyChk>true<CompanyChk><AutoAgree>true</AutoAgree> 
<AgreementChecked>true</AgreementChecked></Broker> 
<LineItems> 
<LineItem>  
<ItemName>syam Milestone 1<ItemName>  
<Description>Description of Milestone 1</Description>  
<Quantity>1</Quantity>  
<Price>1670</Price>   
<Accept>true</Accept> 
<SellComm>100<SellComm>   
<BuyComm>50</BuyComm> 
</LineItem> 
<LineItem>  
<ItemName>syam MIlestone 2</ItemName>  
<Description>Description of MIlestone 2<Description> 
<Quantity>1</Quantity>  
<Price>1450</Price>   
<Accept>true</Accept> 
<SellComm>100</SellComm>  
<BuyComm>50</BuyComm> 
<LineItem> 
</LineItems> 
<EscrowPayment>0</EscrowPayment><ShipmentFee>0</ShipmentFee> 
<ShipmentPayment>0</ShipmentPayment> 
<InspectionLength>6</InspectionLength><Currency>USD<Currency> 
<Fulfillment>1</Fulfillment><Disclosure>1</Disclosure> 
<BrokerCommissionPayee>Buyer</BrokerCommissionPayee> 
<BrkCommissionBuyerPortion>18.1<BrkCommissionBuyerPortion> 
<BrkCommissionSellerPortion>19.1</BrkCommissionSellerPortion> 
<CommissionType>1<CommissionType> 
<SettlementAuthorizationToken>9ACA7889-8A9A-4288-8E28-C325ACD953DB<SettlementAuthorizationToken><InitiationDate>2015-05-15<InitiationDate<TransactionLocked>true</TransactionLocked<PartnerTransID>4286<PartnerTransID><TermsLocked>true<TermsLocked> 
<AllowReject>true</AllowReject> </Transaction>'; 

print curl_dwonload('https://stgsecureapi.escrow.com/apiTransaction',$xmldataFull);//Function for CURL 
function curl_dwonload($Url,$request) 
{ 
if (!function_exists('curl_init')){ 
    die('Sorry cURL is not installed!'); 
}  
    try { 
     $url = $Url; 
     $ch = curl_init();               
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_USERPWD, "[email protected]:broker_password");// Must enter username and password 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$request);     
    curl_setopt($ch, CURLOPT_HEADER, 1);      
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $header = array(); 
     $header[]="Content-Type: application/xml"; 
     $header[] = "POST /transaction HTTP/1.1";                  
     $header[]= "Accept:application/xml";         
     $header[] = "Host: api.escrow.com"; 
     //$header[] = "Authorization: Basic T3BhbmFrOlRlc3QxMjM0"; 
     $header[] = "Content-Length: ".strlen($request); 
     $header[] = "Connection: close"; 
     curl_setopt ($ch, CURLOPT_HTTPHEADER, $header);  
     //echo $ch;            
     $data = curl_exec($ch);  
     return $data; 
    } 
catch (Exception $e) { 
     echo $e->getMessage(); 
     $responseBody = ''; 
     return "error"; 
    } 

} 

Успех сообщение с идентификатором аутентификации (идентификатор сеанса):

HTTP/1.1 100 Продолжить HTTP/1.1 201 Создан Cache-Control: no-cache Pragma: no-cache Content-Length: 271 Content-Type: application/xml; charset = utf-8 Истекает: -1 Сервер: Microsoft-IIS/8.0 X-AspNet-версия: 4.0.30319 X-Powered-By: ASP.NET Дата: сб, 16 мая 2015 г. 13:14:09 GMT Подключение: закрыть Успешно 646494

Этот идентификатор сеанса используется для получения данных о транзакциях из депонирования.

0

Да, они должны действительно добавить данные аутентификации в свой апи- Я использовал запросы питона для авторизации:

response = requests.post(url, data=simplejson.dumps(payload), headers=headers,auth=(username,password)) 
    print "Response: "+str(response) 
    print "Response: "+str(response.headers) 
    print "Response: "+str(response.content) 
1

я использовал следующий код для этого в формате JSON

$requeste = '{ 
"Title": "REST DN test transaction (JSON)", 
"Description": "REST DN test transaction (JSON)", 
"TransactionType": 0, 
"Partner": { 
"PartnerId": 1234 
}, 
"Buyer": { 
"Email": "[email protected]", 
"Initiator": false, 
"CompanyChk": false, 
"AutoAgree": false, 
"AgreementChecked": false 
}, 
"Seller": { 
"Email": "[email protected]", 
"Initiator": true, 
"CompanyChk": false, 
"AutoAgree": false, 
"AgreementChecked": false 
}, 
"LineItems": [ 
{ 
"ItemName": "test.com", 
"Description": "DN description", 
"Quantity": 1, 
"Price": 2000, 
"Accept": true, 
"SellComm": 9.1, 
"BuyComm": 10.1, 
}], 
"EscrowPayment": 0, 
"ShipmentFee": 0, 
"ShipmentPayment":0, 
"DomainNameType": 0, 
"InspectionLength": 6, 
"Currency": "USD", 
"Fulfillment": 2, 
"CommissionType": 1, 
"InitiationDate": "2014-04-15", 
"TermsLocked": true, 
"AllowReject": true 
}'; 


print curl_dwonload('https://stgsecureapi.escrow.com/api/Transaction',$requeste);//Function for CURL 
function curl_dwonload($Url,$request) 
{ 
if (!function_exists('curl_init')){ 
    die('Sorry cURL is not installed!'); 
}  
    try { 
     $url = $Url; 
     $ch = curl_init();               
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_POST, true);  
    curl_setopt($ch, CURLOPT_USERPWD, "emailid:password");// Must enter username and password 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$request);     
    curl_setopt($ch, CURLOPT_HEADER, 1);      

     curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json; Charset=UTF-8'));  
     //echo $ch;            
     $data = curl_exec($ch);  
     echo $data; 
    } 
catch (Exception $e) { 
     echo $e->getMessage(); 
     $responseBody = ''; 
     return "error"; 
    } 

} 

Проверьте ниже YouTube ссылки тоже.

https://youtu.be/My8PzXtC6iY

Смежные вопросы