mewebstudio / pos

Türk bankaları için sanal pos paketi (PHP)
Other
255 stars 101 forks source link

estpost create3DPaymentRequestData extra data ekleme #185

Closed sekizlipenguen closed 6 months ago

sekizlipenguen commented 6 months ago
Information Description
Kütüphane versiyonu 0.16.1
Gateway ismi EstPos
Banka ismi iş bankası

Sorunuz

Selam, create3DPaymentRequestData fonksiyonunda order parametresi içine extra alanı ekleyebilirsek bu alan dolu olduğunda şu şekilde bi ekleme olabilirse sevinirim. İş bankası mesela bazı ek parametreler istiyor bu sayede farklı işlemler yapıyorlar.

Örnek ben Bolum diye bir alan göndermem gerekiyor bu sebep ile böyle bir şey yaptım.

if ($order->extra) {
    $requestData['Extra'] = $order->extra;
}
public function create3DPaymentRequestData(AbstractPosAccount $account, $order, string $txType, array $responseData): array
    {
        $requestData = $this->getRequestAccountData($account) + [
                'Type' => $this->mapTxType($txType),
                'IPAddress' => (string)($order->ip ?? ''),
                'Email' => (string)$order->email,
                'OrderId' => (string)$order->id,
                'UserId' => (string)($order->user_id ?? ''),
                'Total' => (string)$order->amount,
                'Currency' => $this->mapCurrency($order->currency),
                'Taksit' => $this->mapInstallment($order->installment),
                'Number' => $responseData['md'],
                'PayerTxnId' => $responseData['xid'],
                'PayerSecurityLevel' => $responseData['eci'],
                'PayerAuthenticationCode' => $responseData['cavv'],
                'Mode' => 'P',
            ];

        if ($order->extra) {
            $requestData['Extra'] = $order->extra;
        }

        if ($order->name) {
            $requestData['BillTo'] = [
                'Name' => (string)$order->name,
            ];
        }

        /**
         * IMECE kartlar isbankin tarima destek icin ozel kampanyalari olan kartlardir.
         * IMECE kart ile odeme yapabilmek icin MODEL_3D_SECURE odemede alttaki 2 alan gonderilmesi gerkeiyor.
         * https://www.isbank.com.tr/is-ticari/imece-kart
         */
        if (isset($order->is_imece_card) && true === $order->is_imece_card) {
            $requestData['Extra']['IMCKOD'] = 'İmece Ürün Bilgisi';
            $requestData['Extra']['FDONEM'] = 'Faizsiz Dönem Bilgisi';
        }

        if (isset($order->recurringFrequency)) {
            $requestData += $this->getRecurringRequestOrderData($order);
        }

        return $requestData;
    }

Göndermeden önce kontroller

nuryagdym commented 6 months ago

duplicate of https://github.com/mewebstudio/pos/issues/178

v1 ile bu ozellik eklenecek.