Using the Paypal and Pagseguro API

1 – We create an application of the grid type

2 – We edit the following fields and create a new field called “info”

Campo Customerid

3 – We create in the onRecord event

4 – We create two PHP methods, call_pagseguro () and call_paypal ()

Function call_pagseguro


$arr_settings = [
    ‘gateway’    => ‘pagseguro’,
    ‘environment’ => ‘sandbox’,
    ‘auth_email’ => ‘vitorjamil@gmail.com’,
    ‘auth_token’ => ’72AE21503DDA4840BE1DC7945F6D1CE1′
              ];

sc_call_api(”,$arr_settings);

$payment = new \PagSeguro\Domains\Requests\Payment();

sc_lookup(ds_cust, “SELECT contactname FROM customers WHERE customerid = ‘{customerid}’ “);
$senderName = {ds_cust[0][0]};
$senderEmail = “c05075609506900394802@sandbox.pagseguro.com.br”;
$resp_apl = str_replace(“grid_orders_paywith”,”control_paywith_return”,$_SERVER[“PHP_SELF”]);
$redirectUrl = “http://” . $_SERVER[“HTTP_HOST”]  . $resp_apl ;
$notificationUrl = “http://” . $_SERVER[“HTTP_HOST”]  . $resp_apl . “?pagseguro=notification”;

if (\PagSeguro\Configuration\Configure::getEnvironment()->getEnvironment() == “sandbox”) {
        $url_type = “https://stc.sandbox.pagseguro.uol.com.br/pagseguro/api/v2/checkout”;
} else {
        $url_type = “https://stc.pagseguro.uol.com.br/pagseguro/api/v2/checkout”;    
}


$payment->setSender()->setName($senderName);

$payment->setSender()->setEmail($senderEmail);

$payment->setSender()->setPhone()->withParameters(
             11,
             56273440
         );

$payment->setSender()->setDocument()->withParameters(
             ‘CPF’,
             ‘94505764249’
         );

$sItems = “SELECT products.productname, order_details.quantity, order_details.unitprice
FROM order_details INNER JOIN products ON order_details.productid = products.productid
WHERE orderid = “.{orderid};
sc_select(dsitems, $sItems);
    
$pos_item = 1;
if ({dsitems} === false)
{
    echo {dsitems_erro};
}
else
{
    while (!{dsitems}->EOF){    
    $payment->addItems()->withParameters(
    str_pad($pos_item, 4, “0”, STR_PAD_LEFT),
    {dsitems}->fields[0],
    {dsitems}->fields[1],
    {dsitems}->fields[2]
    );
    $pos_item++;
    {dsitems}->MoveNext();
    }
    {dsitems}->Close();
}

$payment->setCurrency(“BRL”);

$payment->setExtraAmount(0.00);

$payment->setReference({orderid});

$payment->setRedirectUrl($redirectUrl);

$payment->setNotificationUrl($notificationUrl);


$payment->addPaymentMethod()->withParameters(
PagSeguro\Enum\PaymentMethod\Group::CREDIT_CARD,
PagSeguro\Enum\PaymentMethod\Config\Keys::MAX_INSTALLMENTS_NO_INTEREST,
2
);

$payment->addPaymentMethod()->withParameters(
PagSeguro\Enum\PaymentMethod\Group::CREDIT_CARD,
PagSeguro\Enum\PaymentMethod\Config\Keys::MAX_INSTALLMENTS_LIMIT,
6
);

$payment->acceptPaymentMethod()->groups(
\PagSeguro\Enum\PaymentMethod\Group::CREDIT_CARD,
\PagSeguro\Enum\PaymentMethod\Group::BALANCE
);

$payment->acceptPaymentMethod()->name(\PagSeguro\Enum\PaymentMethod\Name::DEBITO_ITAU);

$payment->excludePaymentMethod()->group(\PagSeguro\Enum\PaymentMethod\Group::BOLETO);

try {
$response = $payment->register(
        \PagSeguro\Configuration\Configure::getAccountCredentials()
);
    $transcode = substr($response, strpos($response, “code=”) + 5);

    
} catch (Exception $e) {
die($e->getMessage());
}


echo'<script type=”text/javascript” src=”‘.$url_type.’/pagseguro.lightbox.js”> </script>’;

echo ‘<script>
var transactionCode = “‘.$transcode.'”;
PagSeguroLightbox(
    {    code: “‘.$transcode.'”},
    {    
    success : function(transactionCode) {    
    window.location.href = “‘.$redirectUrl.’?pagseguro=return&orderid=’.{orderid}.’&transcode=”+transactionCode;
    },
    abort : function(transactionCode) {    
    window.location.href = “‘.$redirectUrl.’?pagseguro=aborted&orderid=’.{orderid}.’&transcode=”+transactionCode;
    }
    }
);
</script>’;

Function call_Paypal


$arr_settings = [
    ‘gateway’    => ‘paypal_express’,
    ‘username’    => ‘vitorjamil-facilitator_api1.hotmail.com’,
    ‘password’    => ‘PATZ87JJP4TTA8M5’,
    ‘signature’    => ‘AFcWxV21C7fd0v3bYYYRCpSSRl31AiumnueMX6k4djKiUvF8HeI2RUZ1’,
    ‘testMode’    => ‘TRUE’    
              ];

$gateway = sc_call_api(”,$arr_settings);

$resp_apl = str_replace(“grid_orders_paywith”,”control_paywith_return”,$_SERVER[“PHP_SELF”]);

$response = $gateway->purchase(
array(
‘cancelUrl’=> ‘http://’ . $_SERVER[“HTTP_HOST”] . $resp_apl . ‘?paypal=aborted&orderid=’.{orderid},
‘returnUrl’=> ‘http://’ . $_SERVER[“HTTP_HOST”] . $resp_apl . ‘?paypal=return&orderid=’.{orderid},
‘amount’ =>  {priceorder},
‘currency’ => ‘USD’,
‘Description’ => {lang_orders_fild_orderid}.’ ‘.{priceorder}
)

 )->send();
if ($response->isRedirect()) {
   // redirect to offsite payment gateway
   $response->redirect();
}
else {
   // payment failed: display message to customer
   echo $response->getMessage();
}

5 – We proceed to create a control application.

6 – We create the following label type fields within the control application.

7 – We execute the application

PagSeguro

Tutorials in the same category

Send multiple SMS with the sc_send_sms macro

In this example we will be seeing how we can create an application that helps us send multiple mess...

Send SMS with the sc_send_sms macro

Creating a Control application 1 - We create an application of type Control. 2 - Once the...

Using the Mandrill API with macro sc_call_api

In this tutorial we will be showing how to use the sc_call_api macro with the Mandrill API. ...

Email API with the sc_send_mail_api Macro

1 - Create an application of type Control 2 - We proceed to create the necessary fields for ...

Comment this post