-
Notifications
You must be signed in to change notification settings - Fork 8
/
setExpressCheckout.php
75 lines (62 loc) · 2.43 KB
/
setExpressCheckout.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
//Incluindo o arquivo que contém a função sendNvpRequest
require 'sendNvpRequest.php';
//Vai usar o Sandbox, ou produção?
$sandbox = true;
//Baseado no ambiente, sandbox ou produção, definimos as credenciais
//e URLs da API.
if ($sandbox) {
//credenciais da API para o Sandbox
$user = 'conta-business_api1.test.com';
$pswd = '1365001380';
$signature = 'AiPC9BjkCyDFQXbSkoZcgqH3hpacA-p.YLGfQjc0EobtODs.fMJNajCx';
//URL da PayPal para redirecionamento, não deve ser modificada
$paypalURL = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
} else {
//credenciais da API para produção
$user = 'usuario';
$pswd = 'senha';
$signature = 'assinatura';
//URL da PayPal para redirecionamento, não deve ser modificada
$paypalURL = 'https://www.paypal.com/cgi-bin/webscr';
}
//Campos da requisição da operação SetExpressCheckout, como ilustrado acima.
$requestNvp = array(
'USER' => $user,
'PWD' => $pswd,
'SIGNATURE' => $signature,
'VERSION' => '108.0',
'METHOD'=> 'SetExpressCheckout',
'PAYMENTREQUEST_0_PAYMENTACTION' => 'SALE',
'PAYMENTREQUEST_0_AMT' => '22.00',
'PAYMENTREQUEST_0_CURRENCYCODE' => 'BRL',
'PAYMENTREQUEST_0_ITEMAMT' => '22.00',
'PAYMENTREQUEST_0_INVNUM' => '1234',
'L_PAYMENTREQUEST_0_NAME0' => 'Item A',
'L_PAYMENTREQUEST_0_DESC0' => 'Produto A – 110V',
'L_PAYMENTREQUEST_0_AMT0' => '11.00',
'L_PAYMENTREQUEST_0_QTY0' => '1',
'L_PAYMENTREQUEST_0_ITEMAMT' => '11.00',
'L_PAYMENTREQUEST_0_NAME1' => 'Item B',
'L_PAYMENTREQUEST_0_DESC1' => 'Produto B – 220V',
'L_PAYMENTREQUEST_0_AMT1' => '11.00',
'L_PAYMENTREQUEST_0_QTY1' => '1',
'RETURNURL' => 'http://PayPalPartner.com.br/VendeFrete?return=1',
'CANCELURL' => 'http://PayPalPartner.com.br/CancelaFrete',
'BUTTONSOURCE' => 'BR_EC_EMPRESA'
);
//Envia a requisição e obtém a resposta da PayPal
$responseNvp = sendNvpRequest($requestNvp, $sandbox);
//Se a operação tiver sido bem sucedida, redirecionamos o cliente para o
//ambiente de pagamento.
if (isset($responseNvp['ACK']) && $responseNvp['ACK'] == 'Success') {
$query = array(
'cmd' => '_express-checkout',
'token' => $responseNvp['TOKEN']
);
$redirectURL = sprintf('%s?%s', $paypalURL, http_build_query($query));
header('Location: ' . $redirectURL);
} else {
//Opz, alguma coisa deu errada.
//Verifique os logs de erro para depuração.
}