forked from rizdaprasetya/veritrans-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcheckout-process.php
116 lines (100 loc) · 3.3 KB
/
checkout-process.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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
require_once(dirname(__FILE__) . '/../../Veritrans.php');
//Set Your server key
Veritrans_Config::$serverKey = "<Set your ServerKey here>";
// Uncomment for production environment
// Veritrans_Config::$isProduction = true;
// Enable sanitization
Veritrans_Config::$isSanitized = true;
// Enable 3D-Secure
Veritrans_Config::$is3ds = true;
// Required
$transaction_details = array(
'order_id' => rand(),
'gross_amount' => 94000, // no decimal allowed for creditcard
);
// Optional
$item1_details = array(
'id' => 'a1',
'price' => 18000,
'quantity' => 3,
'name' => "Apple"
);
// Optional
$item2_details = array(
'id' => 'a2',
'price' => 20000,
'quantity' => 2,
'name' => "Orange"
);
// Optional
$item_details = array ($item1_details, $item2_details);
// Optional
$billing_address = array(
'first_name' => "Andri",
'last_name' => "Litani",
'address' => "Mangga 20",
'city' => "Jakarta",
'postal_code' => "16602",
'phone' => "081122334455",
'country_code' => 'IDN'
);
// Optional
$shipping_address = array(
'first_name' => "Obet",
'last_name' => "Supriadi",
'address' => "Manggis 90",
'city' => "Jakarta",
'postal_code' => "16601",
'phone' => "08113366345",
'country_code' => 'IDN'
);
// Optional
$customer_details = array(
'first_name' => "Andri",
'last_name' => "Litani",
'email' => "[email protected]",
'phone' => "081122334455",
'billing_address' => $billing_address,
'shipping_address' => $shipping_address
);
// Optional, remove this to display all available payment methods
$enable_payments = array('credit_card','cimb_clicks','mandiri_clickpay','echannel');
// Fill transaction details
$transaction = array(
'enabled_payments' => $enable_payments,
'transaction_details' => $transaction_details,
'customer_details' => $customer_details,
'item_details' => $item_details,
);
$snapToken = Veritrans_Snap::getSnapToken($transaction);
echo "snapToken = ".$snapToken;
?>
<!DOCTYPE html>
<html>
<body>
<button id="pay-button">Pay!</button>
<pre><div id="result-json">JSON result will appear here after payment:<br></div></pre>
<!-- TODO: Remove ".sandbox" from script src URL for production environment. Also input your client key in "data-client-key" -->
<script src="https://app.sandbox.midtrans.com/snap/snap.js" data-client-key="<Set your ClientKey here>"></script>
<script type="text/javascript">
document.getElementById('pay-button').onclick = function(){
// SnapToken acquired from previous step
snap.pay('<?=$snapToken?>', {
// Optional
onSuccess: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
},
// Optional
onPending: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
},
// Optional
onError: function(result){
/* You may add your own js here, this is just example */ document.getElementById('result-json').innerHTML += JSON.stringify(result, null, 2);
}
});
};
</script>
</body>
</html>