walle89 / SwedbankJson

Unofficial API client for the Swedbank's and Sparbankerna's mobile apps in Sweden.
MIT License
74 stars 14 forks source link

Info från Swish transaktioner. #38

Closed CirruZZ closed 3 years ago

CirruZZ commented 5 years ago

Går det att komma åt information ang Swish-transaktioner? På internet banken så finns ju meddelandet som är angivet till Swish transaktionen att läsa. Kollar jag i Bank Appen så kan jag inte se det.

Kolla man på svaret från $bankConn->AccountDetails så ser man att det markeras som en Swish men inget om meddelandet.

[78] => stdClass Object
                (
                    [date] => 2019-07-16
                    [description] => Swish mottagen +46xxxxxxxx
                    [currency] => SEK
                    [details] => stdClass Object
                        (
                            [message] => +467xxxxxx
                            [id] => xxxxxxxxxxx
                            [reference] => +467xxxxxxx
                            [transactionType] => Insättning
                            [category] => SWISH
                            [transactionDate] => 2019-07-16
                            [bookedDate] => 2019-07-16
                            [links] => stdClass Object
                                (
                                    [next] => stdClass Object
                                        (
                                            [method] => GET
                                            [uri] => /v4/engagement/transactions/details/0b0b64b4a92f7d397acf8f78d22663a6e81793d5
                                        )

                                )

                        )

                    [amount] => 70,00
                    [accountingDate] => 2019-07-16
                    [accountingBalance] => stdClass Object
                        (
                            [currencyCode] => SEK
                            [amount] => 3 415,44
                        )

                    [expenseControlIncluded] => UNAVAILABLE
                    [paymentNumber] => 
                    [paymentType] => 
                    [bookedDate] => 2019-07-16
                    [categoryId] => 0
                )

Finns det något sätt att komma åt den informationen?

walle89 commented 5 years ago

Jag tror att endpointen "engagement/transactions/details/" bör innehålla informationen.

Av någon anledning så får jag inte samma output för en Swish transaktion som du visar, så jag kan tyvärr inte testa detta. Om du kan skapa en egen class och extenda SwedbankJson med följande kod (eller gå in lägga in koden nedan direkt i SwedbankJson.php):

    public function transactionDetails($transactionID)
    {
        $output = $this->_auth->getRequest('engagement/transactions/details/'.$transactionID);

        //if (!isset($output->transactionDate))
        //    throw new Exception('Not a valid TransactionID', 60);

        return $output;
    }

Exempel test utifrån ditt exempel:

   $statements = $bankConn->accountDetails();
    print_r($statements->transactions);
    print_r($bankConn->transactionDetails($statements->transactions[78]->id));

Meddela gärna hur det gick och gärna vad du får ut av transactionDetails() så att jag kan göra en korrekt validering.

CirruZZ commented 5 years ago

Funka!

La till funktionen i SwedbankJson.php

Fick lägga till ->details för att få id, sen funkade det.

   $statements = $bankConn->accountDetails();
    print_r($statements->transactions);
    print_r($bankConn->transactionDetails($statements->transactions[8]->details->id;));

Resultat (anonymiserat)

stdClass Object
(
    [message] => för utlägg
    [reference] => +4670xxxxx
    [description] => Swish skickad
    [transactionType] => UT
    [amount] => -360,00
    [bankReference] => 8313955xxxxx
    [transactionDate] => 2019-08-29
    [bookedDate] => 2019-08-29
    [transactionTypeDescription] => Uttag
    [uniqueReference] => FE5FE229CC244B06857191355E2xxxxx
    [originalUniqueReference] => 
    [orderId] => 
    [ownSwishName] => SVEN SVENSSON
    [swishTransactionInfo] => stdClass Object
        (
            [product] => SWISH
            [transactionType] => SENT
            [transactionCounterPartRole] => PRIVATE
            [productService] => BASE
            [refund] => 
            [correction] => 
        )

    [swishDetails] => stdClass Object
        (
            [ownSwishNumber] => +4670xxxxxxx
            [recipientName] => 
            [sendersNumber] => +46 (0)704 61 xx xx
            [payersName] => Olle Olsson
            [transactionTime] => 12:16
            [swishReference] => 58880910194xxxx
        )

)
CirruZZ commented 4 years ago

Suggest to add this to repository, it's working fine.

walle89 commented 4 years ago

Yup, I will. I think however this will be part of version the 1.0.0 release. I don't know when the release will be. But maybe I could consider to release this sooner if you do a pull request with your tested and verified code. :)

If you want to, leave some feedback about issue #40 .