protected function addPayment($params, $amount, $payment, $options)
    {
        return array_merge($params, [
            'payment' => [
                'external' => [
                    'transaction'     => Arr::get($options, 'reference'),
                    'application_key' => $this->gateway->getApplicationKey(),
                ],
                'reference' => [
                    'number'      => Arr::get($options, 'reference'),
                    'description' => Arr::get($options, 'description'),
                ],
                'total' => [
                    'amount'   => $this->gateway->amount($amount),
                    'currency' => Arr::get($options, 'currency', $this->gateway->getCurrency()),
                ],
                'origin'    => [
                    'ip'       => Arr::get($options, 'ip', ''),
                    'location' => [
                        'latitude'  => Arr::get($options, 'latitude', '0.00000'),
                        'longitude' => Arr::get($options, 'longitude', '0.00000'),
                    ],
                ],
            ],
            'recurrent' => $payment,
            'total'     => [
                'amount' => $this->gateway->amount($amount),
            ],
        ]);
    }
protected function addPayment($params, $amount, $payment, $options)
    {
        return array_merge($params, [
            'payment' => [
                'external' => [
                    'transaction'     => Arr::get($options, 'reference'),
                    'application_key' => $this->gateway->getApplicationKey(),
                ],
                'reference' => [
                    'number'      => Arr::get($options, 'reference'),
                    'description' => Arr::get($options, 'description'),
                ],
                'total' => [
                    'amount'   => $this->gateway->amount($amount),
                    'currency' => Arr::get($options, 'currency', $this->gateway->getCurrency()),
                ],
                'origin'    => [
                    'ip'       => Arr::get($options, 'ip', ''),
                    'location' => [
                        'latitude'  => Arr::get($options, 'latitude', '0.00000'),
                        'longitude' => Arr::get($options, 'longitude', '0.00000'),
                    ],
                ],
            ],
            'recurrent' => $payment,
            'total'     => [
                'amount' => $this->gateway->amount($amount),
            ],
        ]);
    }
protected function addPayment ( $ params , $ amount , $ payment , $ options ) { return array_merge ( $ params , [ 'payment' => [ 'external' => [ 'transaction' => Arr :: get ( $ options , 'reference' ) , 'application_key' => $ this -> gateway -> getApplicationKey ( ) , ] , 'reference' => [ 'number' => Arr :: get ( $ options , 'reference' ) , 'description' => Arr :: get ( $ options , 'description' ) , ] , 'total' => [ 'amount' => $ this -> gateway -> amount ( $ amount ) , 'currency' => Arr :: get ( $ options , 'currency' , $ this -> gateway -> getCurrency ( ) ) , ] , 'origin' => [ 'ip' => Arr :: get ( $ options , 'ip' , '' ) , 'location' => [ 'latitude' => Arr :: get ( $ options , 'latitude' , '0.00000' ) , 'longitude' => Arr :: get ( $ options , 'longitude' , '0.00000' ) , ] , ] , ] , 'recurrent' => $ payment , 'total' => [ 'amount' => $ this -> gateway -> amount ( $ amount ) , ] , ] ) ; }
Add payment array params.

@param array $params
@param float $amount
@param mixed $payment
@param array $options

@return array
Add payment array params .