freshworkstudio / transbank-web-services

DEPREACDO: Transbank Web Services SDK. Webpay OneClick, PatPass y Transacción Normal unsando SOAP
MIT License
106 stars 44 forks source link

Commerce connection type must be WS(277) #25

Closed dsrdnpblc closed 5 years ago

dsrdnpblc commented 5 years ago

Buenas tardes, estoy presentando un problema al intentar usar la llave y certificado de integracion de mi ecommerce y no el de integración que ya viene con el paquete... Creo el bag haciendo llamado al .key y .crt de acuerdo a como se estipula en la documentación y se me presenta el siguiente error

Commerce connection type must be WS(277)

gdespirito commented 5 years ago

¿Podrías mostrar el código qué está fallando? Quizás así puedo ayudarte de mejor forma.

El mié., 14 de nov. de 2018 a la(s) 17:34, Luis Guillermo Ramos ( notifications@github.com) escribió:

Buenas tardes, estoy presentando un problema al intentar usar la llave y certificado de integracion de mi ecommerce y no el de integración que ya viene con el paquete... Creo el bag haciendo llamado al .key y .crt de acuerdo a como se estipula en la documentación y se me presenta el siguiente error

Commerce connection type must be WS(277)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/freshworkstudio/transbank-web-services/issues/25, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDWhihZphCJMmd5o0FbCQmxyikHQWQDks5uvH5HgaJpZM4Yeh3A .

dsrdnpblc commented 5 years ago

`<?php

namespace App\Http\Controllers\Register;

use App\Models\User; use App\Models\Person; use App\Models\Payment; use App\Models\Company; use App\Models\CompanyCommune; use App\Models\CompanySubCategory; use App\Models\Subscription; use Illuminate\Http\Request; use App\Models\PersonCompany; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Freshwork\Transbank\RedirectorHelper; use Freshwork\Transbank\CertificationBag; use Freshwork\Transbank\CertificationBagFactory; use Freshwork\Transbank\TransbankServiceFactory; use App\Http\Requests\ValidatePersonProviderRequest; use App\Http\Requests\ValidateCompanyProviderRequest; use App\Http\Requests\RegisterServicesCommunesRequest;

class ProviderController extends Controller { public function payment($amount, Request $request) { //Desarrollo certificados api //$bag = CertificationBagFactory::integrationWebpayNormal();

    //Desarrollo certificados
    $bag = new CertificationBag(
        public_path().'/certs/597020000546.key',
        public_path().'/certs/597020000546.crt',
        null,
        CertificationBag::INTEGRATION
    );
    $plus = TransbankServiceFactory::normal($bag);
    $plus->addTransactionDetail($amount, 'Orden-'.$request->session()->get('company_id').'-'.$request->session()->get('plan_id')); //Amount and BuyOrder
    $response = $plus->initTransaction(env('APP_URL').'/register/provider/payment/store', env('APP_URL').'/register/provider/payment/finish');
    return RedirectorHelper::redirectHTML($response->url, $response->token);
}

public function storePayment(Request $request)
{
    //Desarrollo certificados api
    //$bag = CertificationBagFactory::integrationWebpayNormal();

    //Desarrollo certificados
    $bag = new CertificationBag(
        public_path().'\certs\597020000546.key',
        public_path().'\certs\597020000546.crt',
        null,
        CertificationBag::INTEGRATION
    );
    $plus = TransbankServiceFactory::normal($bag);
    $response = $plus->getTransactionResult();
    $plus->acknowledgeTransaction();
    if($response->detailOutput->responseCode == 0){
        $request->session()->put('payment_result', 'APROBADO');
        $payment = new Payment();
        $payment->pay_order = $request->session()->get('comp_id').'-'.$request->session()->get('plan_id');
        $payment->pay_uf = $request->session()->get('uf');
        $payment->pay_amount = $response->detailOutput->amount;
        $payment->pay_authorization_code = $response->detailOutput->authorizationCode;
        $payment->pay_transaction_date = date('Y-m-d H:i:s',strtotime($response->transactionDate));
        $payment->pay_status = 'APROBADO';
        $payment->fk_companies_comp_id = $request->session()->get('comp_id');
        $payment->fk_plans_plan_id = $request->session()->get('plan_id');
        $payment->save();

        $subscription = new Subscription();
        $subscription->sub_start_date =  date('Y-m-d H:i:s',strtotime($response->transactionDate));
        $subscription->sub_end_date =  date('Y-m-d H:i:s',strtotime($response->transactionDate.' +365 days'));
        $subscription->fk_plans_plan_id = $request->session()->get('plan_id');
        $subscription->fk_payments_pay_id = $payment->pay_id;
        $subscription->fk_companies_comp_id = $request->session()->get('comp_id');
        $subscription->save();

        return redirect()->action(
            'Register\ProviderController@step4'
        );
    }else{
        $request->session()->put('payment_result', 'RECHAZADO');

        $payment = new Payment();
        $payment->pay_order = $request->session()->get('comp_id').'-'.$request->session()->get('plan_id');
        $payment->pay_uf = $request->session()->get('uf');
        $payment->pay_amount = $response->detailOutput->amount;
        $payment->pay_status = 'RECHAZADO';
        $payment->fk_companies_comp_id = $request->session()->get('comp_id');
        $payment->fk_plans_plan_id = $request->session()->get('plan_id');
        $payment->save();

        return redirect()->action(
            'Register\ProviderController@step4'
        );
    }
}

public function finishPayment(Request $request)
{
    return redirect()->action(
        'Register\ProviderController@step4'
    );
}

public function step4()
{
    return view('step4');
}

}

?>`

dsrdnpblc commented 5 years ago

estoy creando el $bag usando new CertificationBag y le paso como parametros la ubicacion de mi .key y mi .crt que contienen la informacion de la llave y certificado respectivamente....

gdespirito commented 5 years ago

El ambiente debe ser de producción, no te Integración. Avisame si al cambiarlo se arregla.

El El mié, 14 de nov. de 2018 a las 19:03, Luis Guillermo Ramos < notifications@github.com> escribió:

estoy creando el $bag usando new CertificationBag y le paso como parametros la ubicacion de mi .key y mi .crt que contienen la informacion de la llave y certificado respectivamente....

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/freshworkstudio/transbank-web-services/issues/25#issuecomment-438835405, or mute the thread https://github.com/notifications/unsubscribe-auth/ABDWhjruB8Ll1DNycJeLtw7GG__3aLZkks5uvJMYgaJpZM4Yeh3A .

-- Enviado con Gmail Mobile

dsrdnpblc commented 5 years ago

Sigue dando el mismo error.... El escenario es el siguiente...

gdespirito commented 5 years ago

@dsrdnpblc ¿pudiste resolverlo finalmente?

gdespirito commented 5 years ago

Revisando tu código nuevamente veo que el tercer parametro del certification bag lo pusiste en null. Ahí debes colocar el certificado publico de transbank (ellos lo envían).