//make transaction
$configkey = pmpro_getOption(„configkey“);
$Sofortueberweisung = new Sofortueberweisung($configkey);
$Sofortueberweisung->setAmount($sofort_args['amount']);
$Sofortueberweisung->setCurrencyCode('EUR');
$Sofortueberweisung->setSenderCountryCode('DE');
$Sofortueberweisung->setReason($sofort_args['item_name'], 'Verwendungszweck');
$Sofortueberweisung->setSuccessUrl(pmpro_url(„confirmation“, „?level=“ . $order->membership_level->id), true);
$Sofortueberweisung->setAbortUrl(pmpro_url(„cancel“, „?level=“ . $order->membership_level->id));
$Sofortueberweisung->setNotificationUrl(pmpro_url(„levels“, „?level=“ . $order->membership_level->id));
$Sofortueberweisung->setCustomerprotection(true);
$Sofortueberweisung->sendRequest();
if($Sofortueberweisung->isError()) {
echo $Sofortueberweisung->getError();
} else {
$paymentUrl = $Sofortueberweisung->getPaymentUrl();
$_SESSION[„sofort_transactionsid“] = $Sofortueberweisung->getTransactionId();
wp_redirect($paymentUrl);
}
//check transaction
$sofort = new SofortLib_TransactionData($Sofortueberweisung);
$sofort->addTransaction($_SESSION[„sofort_transactionsid“]);
$sofort->sendRequest();
$sofort_status = $sofort->getStatus(0);
if ($sofort_status == „pending“ OR $sofort_status == „received“){
//Sofortüberweisung erfolgreich
}else{
//Sofortüberweisung fehlgeschlagen
}