Mollie betaling
<code>
Code (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
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
<?php
session_start();
/*
* Example 1 - How to prepare a new payment with the Mollie API.
*/
setcookie("TestCookie", $_POST['naam']);
$_SESSION['post-data']=$_POST['naam'];
$gegevens = $_SESSION['post-data'];
$str = explode("/", $gegevens);
setcookie("aantal", $_POST['aantaltickets']);
$aantal = $_POST['aantaltickets'];
setcookie("email", $_POST['email']);
setcookie("mailadres", $_POST['mailadres']);
setcookie("onderwerp", $_POST['onderwerp']);
setcookie("inhoud", $_POST['inhoud']);
setcookie("username", $_POST['username']);
setcookie("adres", $_POST['adres']);
setcookie("email", $_POST['email']);
try
{
/*
* Initialize the Mollie API library with your API key.
*
* See: https://www.mollie.com/beheer/account/profielen/
*/
require "mollie/src/Mollie/API/Autoloader.php";
/*
* Initialize the Mollie API library with your API key.
*
* See: https://www.mollie.com/beheer/account/profielen/
*/
$mollie = new Mollie_API_Client;
$mollie->setApiKey("test_AVYz3uwjppq9XCuKbecdAHtQ7hTw2C");
/*
* Generate a unique order id for this example. It is important to include this unique attribute
* in the redirectUrl (below) so a proper return page can be shown to the customer.
*/
$order_id = time();
/*
* Determine the url parts to these example files.
*/
$protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
/*
* Payment parameters:
* amount Amount in EUROs. This example creates a € 10,- payment.
* description Description of the payment.
* redirectUrl Redirect location. The customer will be redirected there after the payment.
* metadata Custom metadata that is stored with the payment.
*/
$payment = $mollie->payments->create(array(
"amount" => $str[count($str)-5]*$aantal + $str[count($str)-11]*$aantal,
"description" => "Your ticket(s) payment",
"redirectUrl" => "{$protocol}://{$hostname}{$path}/index2.php?order_id={$order_id}",
"metadata" => array(
"order_id" => $order_id,
),
));
/*
* In this example we store the order with its payment status in a database.
*/
database_write($order_id, $payment->status);
/*
* Send the customer off to complete the payment.
*/
header("Location: " . $payment->getPaymentUrl());
}
catch (Mollie_API_Exception $e)
{
echo "API call failed: " . htmlspecialchars($e->getMessage());
}
/*
* NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
*/
function database_write ($order_id, $status)
{
$order_id = intval($order_id);
$database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
file_put_contents($database, $status);
} </code>
session_start();
/*
* Example 1 - How to prepare a new payment with the Mollie API.
*/
setcookie("TestCookie", $_POST['naam']);
$_SESSION['post-data']=$_POST['naam'];
$gegevens = $_SESSION['post-data'];
$str = explode("/", $gegevens);
setcookie("aantal", $_POST['aantaltickets']);
$aantal = $_POST['aantaltickets'];
setcookie("email", $_POST['email']);
setcookie("mailadres", $_POST['mailadres']);
setcookie("onderwerp", $_POST['onderwerp']);
setcookie("inhoud", $_POST['inhoud']);
setcookie("username", $_POST['username']);
setcookie("adres", $_POST['adres']);
setcookie("email", $_POST['email']);
try
{
/*
* Initialize the Mollie API library with your API key.
*
* See: https://www.mollie.com/beheer/account/profielen/
*/
require "mollie/src/Mollie/API/Autoloader.php";
/*
* Initialize the Mollie API library with your API key.
*
* See: https://www.mollie.com/beheer/account/profielen/
*/
$mollie = new Mollie_API_Client;
$mollie->setApiKey("test_AVYz3uwjppq9XCuKbecdAHtQ7hTw2C");
/*
* Generate a unique order id for this example. It is important to include this unique attribute
* in the redirectUrl (below) so a proper return page can be shown to the customer.
*/
$order_id = time();
/*
* Determine the url parts to these example files.
*/
$protocol = isset($_SERVER['HTTPS']) && strcasecmp('off', $_SERVER['HTTPS']) !== 0 ? "https" : "http";
$hostname = $_SERVER['HTTP_HOST'];
$path = dirname(isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['PHP_SELF']);
/*
* Payment parameters:
* amount Amount in EUROs. This example creates a € 10,- payment.
* description Description of the payment.
* redirectUrl Redirect location. The customer will be redirected there after the payment.
* metadata Custom metadata that is stored with the payment.
*/
$payment = $mollie->payments->create(array(
"amount" => $str[count($str)-5]*$aantal + $str[count($str)-11]*$aantal,
"description" => "Your ticket(s) payment",
"redirectUrl" => "{$protocol}://{$hostname}{$path}/index2.php?order_id={$order_id}",
"metadata" => array(
"order_id" => $order_id,
),
));
/*
* In this example we store the order with its payment status in a database.
*/
database_write($order_id, $payment->status);
/*
* Send the customer off to complete the payment.
*/
header("Location: " . $payment->getPaymentUrl());
}
catch (Mollie_API_Exception $e)
{
echo "API call failed: " . htmlspecialchars($e->getMessage());
}
/*
* NOTE: This example uses a text file as a database. Please use a real database like MySQL in production code.
*/
function database_write ($order_id, $status)
{
$order_id = intval($order_id);
$database = dirname(__FILE__) . "/orders/order-{$order_id}.txt";
file_put_contents($database, $status);
} </code>
Je moet controleren wat de status is en op basis daarvan stuur je iemand door naar een bepaalde pagina zo heb ik het gedaan.
<code>
</code>
maar waar moet ik dat in mn bestaande code neerzetten? Want de redirect url die ik daar heb staan is de redirect van wanneer het gelukt is. Thanks btw
Gewijzigd op 24/06/2015 12:00:30 door Willem R
Code (php)
Deze code heb ik in mijn return/redirect page staan, de return wordt altijd aangeroepen ook als een betaling verloopt of mislukt.
Gewijzigd op 24/06/2015 13:27:18 door Daan Slagter
Op die pagina zul je het payment object (opnieuw) moeten creeren en dan de status controleren, lijkt mij?
Er zijn ongetwijfeld voorbeelden van hoe deze hele flow er in de praktijk uitziet?
EDIT: wellicht wil je of een moderator je API key verwijderen uit je post...
Gewijzigd op 24/06/2015 13:37:01 door Thomas van den Heuvel
Ja idd Thomas zo werkt het je moet dan opnieuw het payment object creeren en dan de status controleren, die api key is een test key waar je toch niks mee kunt.
Ik zou $order_id = time(); niet gebruiken maar
En die API key maakt niet heel veel uit, het is maar een test API key waar je niets mee kan eigenlijk.
Als de payment niet juist is gegaan toon ik een andere file.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$viewfile = 'thankyou';
if (false === $payment->isPaid()) {
$viewfile = 'wentwrong';
}
$this->display($this->load->view(
'order/' . $viewfile,
$data, true)
);
?>
$viewfile = 'thankyou';
if (false === $payment->isPaid()) {
$viewfile = 'wentwrong';
}
$this->display($this->load->view(
'order/' . $viewfile,
$data, true)
);
?>
Ik gebruik een framework maar de gedachte blijft hetzelfde.
Thanks allen, ik ga kijken of ik eruit kom en hou jullie op de hoogte!