1. Wstęp
  2. Corporate Node
  3. Operacje SOAP
  4. requestPaymentInitiation

requestPaymentInitiation

Operacja requestPaymentInitiation wysyła żądanie płatności na daną kwotę do klienta o podanym username.

Zwykle to zapytanie jest wysyłane do klienta zalogowanego na Aplikacji Graficznej Użytkownika (GUI) lub aplikacji Billon na telefonie. Po otrzymaniu zapytania, na ekranie odbiorcy wyświetli się zapytanie, czy chce przesłać pieniądze.

Przykładowe zapytanie SOAP:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="ns1">
 <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
   <ns1:requestPaymentInitiation>
    <type>NORMAL</type>
    <amount>
     <amount>12000</amount>
     <currency>PLN</currency>
     <colour>0</colour>
    </amount>
    <seriesId></seriesId>
    <requestData>
     <username>aabc</username>
     <uniqueTransferId>Thu Apr 23 16:11:11 2015</uniqueTransferId>
     <title>item1 x 10</title>
     <description>
     </description>
     <channelInfo></channelInfo>
     <requestInvoiceData>NOT_NEEDED</requestInvoiceData>
     <requestDeliveryData>NOT_NEEDED</requestDeliveryData>
     <antiSpamCode></antiSpamCode>
    </requestData>
    <paymentContext></paymentContext>
    <peerLocation>
    <userName>aabc</userName>
    <userLocation>
     <machineIdHex></machineIdHex>
     <ip></ip>
     <tcp>0</tcp>
     <udp>0</udp>
    </userLocation>
    <buddyLocation>
     <machineIdHex></machineIdHex>
     <ip></ip>
     <tcp>0</tcp>
     <udp>0</udp>
    </buddyLocation>
    <confirmationCode1></confirmationCode1>
    <confirmationCode2></confirmationCode2>
   </peerLocation>
   </ns1:requestPaymentInitiation>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Przykładowa odpowiedź SOAP:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="ns1">
   <SOAP-ENV:Header/>
   <SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <ns1:requestPaymentInitiationResponse>
         <return xsi:type="ns1:vuiSoapTaskIdResponse">
            <requestStatus>SUCCESS</requestStatus>
            <requestStatusDescription>Request succeeded.</requestStatusDescription>
            <taskId>7M5M84KS4RM3FALBNUN2C51CLW</taskId>
         </return>
      </ns1:requestPaymentInitiationResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Odpowiedź klienta oraz status płatności można sprawdzić za pomocą zapytania getTaskStatus. W polu status możemy dostać następujące odpowiedzi:

statusopis
PREPARATIONprzygotowywanie żądania
SEARCHINGszukanie użytkownika w sieci
WAITING_FOR_USER_DECISIONczekanie na decyzję użytkownika
TRANSFERRINGtransfer pieniędzy w trakcie, w polu progressPercent powinien być widoczny postęp transferu
FINISHED_OKtransfer poprawnie zakończony
FINISHED_ERRtransfer pieniędzy nie udał się
FINISHED_ERR_USER_REJECTEDużytkownik odrzucił żądanie płatność
FINISHED_ERR_TOO_OFTENZa dużo zapytań na raz
FINISHED_ERR_USER_NOT_FOUNDnie znaleziono użytkownika (klienta) w sieci
FINISHED_ERR_INVALID_USERNAMEnieprawidłowa nazwa użytkownika
FINISHED_ERR_USER_NOT_AUTHENTICATEDużytkownik nie jest uwierzytelniony
FINISHED_ERR_INVALID_DATAnieprawidłowe dane płatności
FINISHED_ERR_TIMEOUTprzekroczono czas oczekiwania
FINISHED_ERR_SELLER_LIMITS_EXCEEDEDprzekroczono limity sprzedawcy
FINISHED_ERR_BUYER_LIMITS_EXCEEDEDprzekroczono limity kupującego
FINISHED_ERR_CHANGE_MISMATCHbłąd wewnętrzny
FINISHED_ERR_CANCELLEDtransakcja anulowana

Pole description służy do podania opisu transakcji (opis sprzedawanego towaru, dane stron transakcji). Jego format jest opisany na stronie PurchaseDescription. Przykładowa treść może wyglądać jak poniżej:

{
        "system_transaction_id": "13444",
        "merchant_unique_purchase_id": "5765",
        "amount": "10",
        "beneficiary_id": "",
        "sales_document_data": {
            "sales_document_id": "12355444",
            "sales_document_kind": "",
            "sales_document_date": "1429798271023",
            "trade_date": "1429798271023",
            "items": [
	        {
		     "item_id": "1",
		     "item_name": "item1",
		     "quantity": "10",
		     "unit_type": "type",
		     "unit_price_net": "10",
		     "amount_net": "10",
		     "amount_discount_net": "0",
		     "vat": {
		      "percent": "23",
		      "amount": "8"
		     },
		     "amount_gross": "12"
	        }
            ],
            "total_amount_net": "10",
            "total_amount_gross": "12"
         },
        "notes": "",
        "extra_json": "",
        "reserved": ""
     }

Parametry zapytania:

parametrtypopis
paymentContextstringszczegółowe dane żądania
requestDatapaymentRequestDatakwota do zapłaty
typestringtyp płatności (NORMAL, LIKE, LOVE)
amountbillonAmountkwota która ma być do nas przelana
peerLocationbillonUserLocationlokalizacja klienta w sieci, używana do szybszego odszukania (jeśli nie jest podana WUI będzie szukał użytkownika w sieci)
seriesIdstringnieużywane

Parametry odpowiedzi:

nazwatypopis
taskIdstringid powstałego taska
requestStatusDescriptionstringopis statusu
requestStatusstringstatus wykonania zapytania

Możliwe błędy:

błądopis
ERR_INVALID_PAYMENT_TYPEnieprawidłowy rodzaj płatności
ERR_INVALID_AMOUNTnieprawidłowa kwota
ERR_INVALID_SERIES_IDnieprawidłowy identyfikator płatności
ERR_INVALID_PEER_LOCATIONnieprawidłowa lokalizacja peera
Czy ten artykuł jest dla Ciebie pomocny? Tak Nie

Jak możemy pomóc?