-
Notifications
You must be signed in to change notification settings - Fork 63
/
Copy pathsnap.php
130 lines (111 loc) · 3.29 KB
/
snap.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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Snap extends CI_Controller {
/**
* Index Page for this controller.
*
* Maps to the following URL
* http://example.com/index.php/welcome
* - or -
* http://example.com/index.php/welcome/index
* - or -
* Since this controller is set as the default controller in
* config/routes.php, it's displayed at http://example.com/
*
* So any other public methods not prefixed with an underscore will
* map to /index.php/welcome/<method_name>
* @see http://codeigniter.com/user_guide/general/urls.html
*/
public function __construct()
{
parent::__construct();
$params = array('server_key' => 'your_server_key', 'production' => false);
$this->load->library('midtrans');
$this->midtrans->config($params);
$this->load->helper('url');
}
public function index()
{
$this->load->view('checkout_snap');
}
public function token()
{
// 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
);
// Data yang akan dikirim untuk request redirect_url.
$credit_card['secure'] = true;
//ser save_card true to enable oneclick or 2click
//$credit_card['save_card'] = true;
$time = time();
$custom_expiry = array(
'start_time' => date("Y-m-d H:i:s O",$time),
'unit' => 'minute',
'duration' => 2
);
$transaction_data = array(
'transaction_details'=> $transaction_details,
'item_details' => $item_details,
'customer_details' => $customer_details,
'credit_card' => $credit_card,
'expiry' => $custom_expiry
);
error_log(json_encode($transaction_data));
$snapToken = $this->midtrans->getSnapToken($transaction_data);
error_log($snapToken);
echo $snapToken;
}
public function finish()
{
$result = json_decode($this->input->post('result_data'));
echo 'RESULT <br><pre>';
var_dump($result);
echo '</pre>' ;
}
}