SEPA Payment

This commit is contained in:
Kevin Adametz 2020-01-08 19:40:16 +01:00
parent 7ef7a507c7
commit f117f79bb9
9 changed files with 286 additions and 95 deletions

46
.idea/workspace.xml generated
View file

@ -2,32 +2,14 @@
<project version="4"> <project version="4">
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="2fbaac5f-25ba-4502-a970-cc14728d7d55" name="Default Changelist" comment=""> <list default="true" id="2fbaac5f-25ba-4502-a970-cc14728d7d55" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/app/Http/Controllers/SalesController.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/lead/m_data_form_edit.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/sales/customers.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/admin/sales/users.blade.php" afterDir="false" />
<change afterPath="$PROJECT_DIR$/resources/views/sys/admin/shopping-orders.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/CountryController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/CountryController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Pay/PayoneController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Pay/PayoneController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/DataTableController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/DataTableController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/Http/Controllers/Web/CheckoutController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Web/CheckoutController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/LeadController.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/public/images/payments-assets/sofort.png" beforeDir="false" afterPath="$PROJECT_DIR$/public/images/payments-assets/sofort.png" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Http/Controllers/Sys/AdminToolsController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Http/Controllers/Sys/AdminToolsController.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/ShoppingOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ShoppingOrder.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Models/ShoppingUser.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Models/ShoppingUser.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Repositories/UserRepository.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Repositories/UserRepository.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/Services/HTMLHelper.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/Services/HTMLHelper.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/User.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/User.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2014_10_12_000000_create_users_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2014_10_12_000000_create_users_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2018_10_21_164001_create_products_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2018_10_21_164001_create_products_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/database/migrations/2019_02_23_161530_create_shopping_users_table.php" beforeDir="false" afterPath="$PROJECT_DIR$/database/migrations/2019_02_23_161530_create_shopping_users_table.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/edit.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/lead/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/index.blade.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/resources/views/web/templates/checkout-final.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/checkout-final.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/lead/m_data_form.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/lead/m_data_form.blade.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/resources/views/web/templates/checkout.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/templates/checkout.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/admin/user/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/admin/user/index.blade.php" afterDir="false" /> <change beforePath="$PROJECT_DIR$/resources/views/web/user/layouts/application.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/web/user/layouts/application.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/application.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/layouts/includes/layout-sidenav.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/resources/views/sys/admin/index.blade.php" beforeDir="false" afterPath="$PROJECT_DIR$/resources/views/sys/admin/domain-ssl.blade.php" afterDir="false" />
<change beforePath="$PROJECT_DIR$/routes/web.php" beforeDir="false" afterPath="$PROJECT_DIR$/routes/web.php" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -199,6 +181,7 @@
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
<property name="ASKED_ADD_EXTERNAL_FILES" value="true" /> <property name="ASKED_ADD_EXTERNAL_FILES" value="true" />
<property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
<property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" /> <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
<property name="WebServerToolWindowFactoryState" value="false" /> <property name="WebServerToolWindowFactoryState" value="false" />
<property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/admin/lead" /> <property name="last_opened_file_path" value="$PROJECT_DIR$/resources/views/admin/lead" />
@ -335,6 +318,9 @@
<workItem from="1577966622446" duration="15215000" /> <workItem from="1577966622446" duration="15215000" />
<workItem from="1578042899454" duration="15408000" /> <workItem from="1578042899454" duration="15408000" />
<workItem from="1578069761418" duration="55000" /> <workItem from="1578069761418" duration="55000" />
<workItem from="1578070274627" duration="66000" />
<workItem from="1578493675622" duration="10000" />
<workItem from="1578493690816" duration="11299000" />
</task> </task>
<servers /> <servers />
</component> </component>
@ -364,18 +350,22 @@
</option> </option>
</component> </component>
<component name="WindowStateProjectService"> <component name="WindowStateProjectService">
<state x="968" y="472" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog" timestamp="1578493681405">
<screen x="0" y="23" width="2560" height="1417" />
</state>
<state x="968" y="472" key="#com.intellij.openapi.updateSettings.impl.PluginUpdateInfoDialog/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578493681405" />
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1578063343693"> <state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1578063343693">
<screen x="0" y="23" width="2560" height="1417" /> <screen x="0" y="23" width="2560" height="1417" />
</state> </state>
<state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578063343693" /> <state x="1064" y="650" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578063343693" />
<state x="926" y="497" width="683" height="486" key="find.popup" timestamp="1578069059502"> <state x="926" y="497" width="683" height="486" key="find.popup" timestamp="1578504136004">
<screen x="0" y="23" width="2560" height="1417" /> <screen x="0" y="23" width="2560" height="1417" />
</state> </state>
<state x="926" y="497" width="683" height="486" key="find.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578069059502" /> <state x="926" y="497" width="683" height="486" key="find.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578504136004" />
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup" timestamp="1578068796425"> <state x="945" y="377" width="670" height="676" key="search.everywhere.popup" timestamp="1578504893896">
<screen x="0" y="23" width="2560" height="1417" /> <screen x="0" y="23" width="2560" height="1417" />
</state> </state>
<state x="945" y="377" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578068796425" /> <state x="945" y="377" width="670" height="676" key="search.everywhere.popup/-2560.23.2560.1417/2560.-571.1440.2537/0.23.2560.1417@0.23.2560.1417" timestamp="1578504893896" />
</component> </component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>

View file

@ -79,10 +79,10 @@ class PayoneController extends Controller
} }
//make Payone payment //make Payone payment
public function setPrePayment($payment_method, $amount, $currency, $cc_ret = []){ public function setPrePayment($payment_method, $amount, $currency, $ret = []){
$this->reference = substr(uniqid(true), 0, 16); $this->reference = substr(uniqid(true), 0, 16);
$this->setMethod($payment_method, $cc_ret); $this->setMethod($payment_method, $ret);
$this->urls = [ $this->urls = [
'successurl' => route('checkout.transaction_status', ['success', $this->reference]), 'successurl' => route('checkout.transaction_status', ['success', $this->reference]),
@ -138,13 +138,13 @@ class PayoneController extends Controller
} }
private function setMethod($payment_method, $cc_ret = []){ private function setMethod($payment_method, $ret = []){
if($payment_method){ if($payment_method){
if(strpos($payment_method, '#')){ if(strpos($payment_method, '#')){
$payment_method = explode('#', $payment_method); $payment_method = explode('#', $payment_method);
//wallet Paypal //wallet Paypal
if($payment_method[0] == 'wlt'){ if($payment_method[0] === 'wlt'){
$this->method = [ $this->method = [
"clearingtype" => "wlt", "clearingtype" => "wlt",
"wallettype" => $payment_method[1], "wallettype" => $payment_method[1],
@ -153,7 +153,7 @@ class PayoneController extends Controller
]; ];
} }
//Online-Überweisung //Online-Überweisung
if($payment_method[0] == 'sb'){ if($payment_method[0] === 'sb'){
$this->method = [ $this->method = [
"clearingtype" => "sb", "clearingtype" => "sb",
"wallettype" => "", "wallettype" => "",
@ -164,7 +164,7 @@ class PayoneController extends Controller
} }
//Rechnungskauf //Rechnungskauf
/* if($payment_method[0]== 'fnc'){ /* if($payment_method[0]=== 'fnc'){
$this->method = [ $this->method = [
"clearingtype" => "fnc", "clearingtype" => "fnc",
"wallettype" => "", "wallettype" => "",
@ -178,7 +178,22 @@ class PayoneController extends Controller
*/ */
} }
//vorkasse //vorkasse
if($payment_method == 'vor'){ if($payment_method === 'elv'){
$this->method = [
"clearingtype" => "elv",
"wallettype" => "",
'onlinebanktransfertype' => "",
"request" => "authorization",
"mandate_identification" => $ret['elv']['mandate_identification'],
"iban" => $ret['elv']['iban'],
"bic" => $ret['elv']['bic'],
"bankaccountholder" =>$ret['elv']['bankaccountholder'],
// "bankcountry" => "DE",
];
}
//vorkasse
if($payment_method === 'vor'){
$this->method = [ $this->method = [
"clearingtype" => "vor", "clearingtype" => "vor",
"wallettype" => "", "wallettype" => "",
@ -186,22 +201,19 @@ class PayoneController extends Controller
"request" => "authorization", "request" => "authorization",
]; ];
} }
//CreditCard //CreditCard
if($payment_method == 'cc'){ if($payment_method === 'cc'){
//need the $cc_ret //need the $cc_ret
$this->method = [ $this->method = [
"clearingtype" => "cc", "clearingtype" => "cc",
"wallettype" => "", "wallettype" => "",
'onlinebanktransfertype' => "", 'onlinebanktransfertype' => "",
"request" => "authorization", "request" => "authorization",
"pseudocardpan" => $cc_ret['pseudocardpan'] "pseudocardpan" => $ret['cc']['pseudocardpan']
//"xid" => "3-D Secure transaction ID" //"xid" => "3-D Secure transaction ID"
]; ];
} }
} }
} }
@ -209,14 +221,11 @@ class PayoneController extends Controller
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls); $request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
$response = Payone::sendRequest($request); $response = Payone::sendRequest($request);
/* /*
* status APPROVED / REDIRECT / ERROR / PENDING * status APPROVED / REDIRECT / ERROR / PENDING
*/ */
if($response['status'] == 'ERROR'){ if($response['status'] === 'ERROR'){
PaymentTransaction::create([ PaymentTransaction::create([
'shopping_payment_id' => $this->shopping_payment->id, 'shopping_payment_id' => $this->shopping_payment->id,
'request' => $this->method['request'], 'request' => $this->method['request'],
@ -231,7 +240,7 @@ class PayoneController extends Controller
} }
if($response['status'] == 'REDIRECT'){ if($response['status'] === 'REDIRECT'){
PaymentTransaction::create([ PaymentTransaction::create([
'shopping_payment_id' => $this->shopping_payment->id, 'shopping_payment_id' => $this->shopping_payment->id,
'request' => $this->method['request'], 'request' => $this->method['request'],
@ -244,7 +253,7 @@ class PayoneController extends Controller
} }
if($response['status'] == 'APPROVED'){ if($response['status'] === 'APPROVED'){
// header("Location: " . $response["redirecturl"]); // or other redirect method // header("Location: " . $response["redirecturl"]); // or other redirect method
$payt = PaymentTransaction::create([ $payt = PaymentTransaction::create([
'shopping_payment_id' => $this->shopping_payment->id, 'shopping_payment_id' => $this->shopping_payment->id,
@ -255,18 +264,25 @@ class PayoneController extends Controller
'transmitted_data' => $response, 'transmitted_data' => $response,
]); ]);
if($payt->shopping_payment->clearingtype == "vor"){ if($payt->shopping_payment->clearingtype === "vor"){
//vorkasse //vorkasse
return redirect(route('checkout.transaction_approved', [$payt->id, $this->reference])); return redirect(route('checkout.transaction_approved', [$payt->id, $this->reference]));
exit; exit;
} }
if($payt->shopping_payment->clearingtype == "cc"){ if($payt->shopping_payment->clearingtype === "cc"){
//creditcard //creditcard
return redirect(route('checkout.transaction_approved', [$payt->id, $this->reference])); return redirect(route('checkout.transaction_approved', [$payt->id, $this->reference]));
exit; exit;
} }
if($payt->shopping_payment->clearingtype === "elv"){
//sepa
return redirect(route('checkout.transaction_approved', [$payt->id, $this->reference]));
exit;
}
var_dump($response); var_dump($response);
die(); die();
//txid //txid
@ -276,7 +292,7 @@ class PayoneController extends Controller
} }
if($response['status'] == 'PENDING'){ if($response['status'] === 'PENDING'){
var_dump($response); var_dump($response);
die(); die();
//txid //txid
@ -308,6 +324,46 @@ class PayoneController extends Controller
} }
public function checkBankAccount($data, $amount, $currency, $shopping_user)
{
$this->shopping_user = $shopping_user;
$this->setPersonalData();
$this->prepayment = [
"clearingtype" => "elv",
"amount" => $amount, // amount in smallest currency unit, i.e. cents
"currency" => $currency,
"request" => "managemandate", // create account receivable and instantly book the amount
"bankaccountholder" => $data['elv_bankaccountholder'],
"iban" => $data['elv_iban'],
"bic" => $data['elv_bic'],
// "language" => 'de',
];
$request = array_merge($this->default, $this->personalData, $this->deliveryData, $this->method, $this->prepayment, $this->urls);
// dd($request);
return Payone::sendRequest($request);
}
/* public function getPDFFile($mandateId)
{
$params['file_reference'] = $mandateId;//"XX-T0000000";
$params['file_type'] = 'SEPA_MANDATE';
$params['file_format'] = 'PDF';
$request = array_merge($this->default, $params);
return Payone::sendRequest($request);
}
*/
/* public function checkStatus(){ /* public function checkStatus(){
// again, the default values will be needed // again, the default values will be needed
$capture = array( $capture = array(
@ -327,6 +383,20 @@ class PayoneController extends Controller
//debit payment //debit payment
/* /*
* *
*
* $params['bankaccountholder'] = $paymentData['mopt_payone__debit_bankaccountholder'];
$params['iban'] = $this->removeWhitespaces($paymentData['mopt_payone__debit_iban']);
$params['bic'] = $this->removeWhitespaces($paymentData['mopt_payone__debit_bic']);
* $params['bankcountry'] = $paymentData['mopt_payone__debit_bankcountry'];
$params['bankaccount'] = $this->removeWhitespaces($paymentData['mopt_payone__debit_bankaccount']);
$params['bankcode'] = $this->removeWhitespaces($paymentData['mopt_payone__debit_bankcode']);
if (Shopware()->Session()->moptMandateData) {
$params['mandate_identification'] = Shopware()->Session()->moptMandateData['mopt_payone__mandateIdentification'];
}
*
* ["clearing_bankaccount"]=> string(10) "2599100003" * ["clearing_bankaccount"]=> string(10) "2599100003"
["clearing_bankcode"]=> string(8) "12345678" ["clearing_bankcode"]=> string(8) "12345678"
["clearing_bankcountry"]=> string(2) "DE" ["clearing_bankcountry"]=> string(2) "DE"

View file

@ -129,27 +129,26 @@ class CheckoutController extends Controller
//check credit Card //check credit Card
if(Input::get('payment_method')){ if(Input::get('payment_method')){
$cc_ret = []; $ret = [];
//need precheck the card //need precheck the card
if(Input::get('payment_method') == 'cc'){ if(Input::get('payment_method') === 'cc'){
$pay = new PayoneController(); $pay = new PayoneController();
$cc_ret = $pay->checkCreditCard($data); $ret['cc'] = $pay->checkCreditCard($data);
if($cc_ret['status'] == 'ERROR' || $cc_ret['status'] == 'INVALID'){ if($ret['cc']['status'] === 'ERROR' || $ret['cc']['status'] === 'INVALID'){
/* PaymentTransaction::create([ /* PaymentTransaction::create([
'shopping_payment_id' => //is no shopping_payment_id at this moment, 'shopping_payment_id' => //is no shopping_payment_id at this moment,
'request' => 'creditcardcheck, 'request' => 'creditcardcheck,
'errorcode' => $cc_ret['errorcode'], 'errorcode' => $ret['cc']['errorcode'],
'errormessage' => $cc_ret['errormessage'], 'errormessage' => $ret['cc']['errormessage'],
'customermessage' => $cc_ret['customermessage'], 'customermessage' => $ret['cc']['customermessage'],
'status' => $response['status'], 'status' => $response['status'],
]);*/ ]);*/
\Session::flash('cc-error', 1); \Session::flash('cc-error', 1);
\Session::flash('errormessage', $cc_ret['errormessage']); \Session::flash('errormessage', $ret['cc']['errormessage']);
\Session::flash('customermessage', $cc_ret['customermessage']); \Session::flash('customermessage', $ret['cc']['customermessage']);
return redirect(route('checkout.checkout_card'))->withInput(Input::all()); return redirect(route('checkout.checkout_card'))->withInput(Input::all());
exit;
} }
if($cc_ret['status'] == 'VALID'){ if($ret['cc']['status'] === 'VALID'){
/* /*
* array(4) { ["status"]=> string(5) "VALID" ["pseudocardpan"]=> string(19) "9410010000169020567" ["cardtype"]=> string(1) "V" ["truncatedcardpan"]=> string(16) "411111XXXXXX1111" } * array(4) { ["status"]=> string(5) "VALID" ["pseudocardpan"]=> string(19) "9410010000169020567" ["cardtype"]=> string(1) "V" ["truncatedcardpan"]=> string(16) "411111XXXXXX1111" }
* application through http post * application through http post
@ -158,11 +157,56 @@ class CheckoutController extends Controller
} }
} }
//need precheck the card
if(Input::get('payment_method') === 'elv' && is_null(Input::get('mandate_identification'))){
$pay = new PayoneController();
$amount = (int) (float) Yard::instance('shopping')->totalWithShipping(2, '.', ',') *100;
$ret['elv'] = $pay->checkBankAccount($data, $amount, 'EUR', $shopping_user);
if($ret['elv']['status'] === 'ERROR' || $ret['elv']['status'] === 'INVALID'){
/* PaymentTransaction::create([
'shopping_payment_id' => //is no shopping_payment_id at this moment,
'request' => 'creditcardcheck,
'errorcode' => $ret['cc']['errorcode'],
'errormessage' => $ret['cc']['errormessage'],
'customermessage' => $ret['cc']['customermessage'],
'status' => $response['status'],
]);*/
\Session::flash('elv-error', 1);
\Session::flash('errormessage', $ret['elv']['errormessage']);
\Session::flash('customermessage', $ret['elv']['customermessage']);
return redirect(route('checkout.checkout_card'))->withInput(Input::all());
}
if($ret['elv']['status'] === 'APPROVED' && $ret['elv']['mandate_status'] !== "active"){
dd($ret);
\Session::flash('elv-managemandate', 1);
\Session::flash('elv-mandate_identification', $ret['elv']['mandate_identification']);
\Session::flash('elv-mandate_text', $ret['elv']['mandate_text']);
\Session::flash('elv-creditor_identifier', $ret['elv']['creditor_identifier']);
return redirect(route('checkout.checkout_card'))->withInput(Input::all());
/*
* array(4) { ["status"]=> string(5) "VALID" ["pseudocardpan"]=> string(19) "9410010000169020567" ["cardtype"]=> string(1) "V" ["truncatedcardpan"]=> string(16) "411111XXXXXX1111" }
* application through http post
* get this to the prepayment
* */
}
$ret['elv']['bankaccountholder'] = $data['elv_bankaccountholder'];
}
if(Input::get('payment_method') === 'elv' && Input::get('mandate_identification')) {
$ret['elv']['mandate_identification'] = Input::get('mandate_identification');
$ret['elv']['creditor_identifier'] = Input::get('creditor_identifier');
$ret['elv']['iban'] = $data['iban'];
$ret['elv']['bic'] = $data['elv_bic'];
$ret['elv']['bankaccountholder'] = $data['elv_bankaccountholder'];
}
//other //other
$pay = new PayoneController(); $pay = new PayoneController();
$pay->init($shopping_user, $shopping_order); $pay->init($shopping_user, $shopping_order);
$amount = intval(floatval(Yard::instance('shopping')->totalWithShipping(2, '.', ',')) *100); $amount = (int) (float) Yard::instance('shopping')->totalWithShipping(2, '.', ',') *100;
$reference = $pay->setPrePayment(Input::get('payment_method'), $amount, 'EUR', $cc_ret); $reference = $pay->setPrePayment(Input::get('payment_method'), $amount, 'EUR', $ret);
$this->putPayments('payment_reference', $reference); $this->putPayments('payment_reference', $reference);
$pay->setPersonalData(); $pay->setPersonalData();
return $pay->ResponseData(); return $pay->ResponseData();
@ -185,7 +229,7 @@ class CheckoutController extends Controller
$ShoppingPayment->status = $status; $ShoppingPayment->status = $status;
$ShoppingPayment->save(); $ShoppingPayment->save();
if($status == "success"){ if($status === "success"){
Yard::instance('shopping')->destroy(); Yard::instance('shopping')->destroy();
$this->destroy(); $this->destroy();
@ -199,12 +243,12 @@ class CheckoutController extends Controller
]; ];
return view('web.templates.checkout-final', $data); return view('web.templates.checkout-final', $data);
} }
if($status == "cancel"){ if($status === "cancel"){
\Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.'); \Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.');
return redirect(route('checkout.checkout_card')); return redirect(route('checkout.checkout_card'));
} }
if($status == "error"){ if($status === "error"){
\Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.'); \Session::flash('checkout-error', 'Der Zahlungsvorgang wurde abgebrochen, die Bestellung konnte nicht ausgeführt werden.');
return redirect(route('checkout.checkout_card')); return redirect(route('checkout.checkout_card'));

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Before After
Before After

View file

@ -59,7 +59,7 @@
<form class="modal-content" action="{{route('admin_lead_edit', [$user->id])}}" method="post"> <form class="modal-content" action="{{route('admin_lead_edit', [$user->id])}}" method="post">
@csrf @csrf
<div class="modal-header"> <div class="modal-header">
<h5 class="modal-title"> {{__('Attribute')}} <span class="font-weight-light">{{__('create/edit')}}</span></h5> <h5 class="modal-title"> {{__('Inhalte mivita')}} <span class="font-weight-light">{{__('create/edit')}}</span></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button> <button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
</div> </div>
<div class="modal-body"> <div class="modal-body">

View file

@ -100,7 +100,7 @@
@if($pay_trans && $pay_trans->shopping_payment) @if($pay_trans && $pay_trans->shopping_payment)
@if($pay_trans->shopping_payment->clearingtype == "vor") @if($pay_trans->shopping_payment->clearingtype === "vor")
<h3>Bezahlung per Vorkasse:</h3> <h3>Bezahlung per Vorkasse:</h3>
<p>Bitte überweise {{ number_format( floatval($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR auf die folgende Kontoverbindung, um den Kauf abzuschließen. <p>Bitte überweise {{ number_format( floatval($pay_trans->shopping_payment->amount/100), 2, ",", ".") }} EUR auf die folgende Kontoverbindung, um den Kauf abzuschließen.
<br> <br>
@ -114,11 +114,18 @@
<hr /> <hr />
@endif @endif
@if($pay_trans->shopping_payment->clearingtype == "cc") @if($pay_trans->shopping_payment->clearingtype === "cc")
<h4>Bezahlung per Kreditkarte:</h4> <h4>Bezahlung per Kreditkarte:</h4>
<p>Deine Zahlung wurde genehmigt, eine Bestätigung der Zahlung wird automatisch erstellt.</p> <p>Deine Zahlung wurde genehmigt, eine Bestätigung der Zahlung wird automatisch erstellt.</p>
<hr /> <hr />
@endif @endif
@if($pay_trans->shopping_payment->clearingtype === "elv")
<h4>Bezahlung per SEPA:</h4>
<p>Deine Zahlung wird bearbeitet, eine Bestätigung zur Zahlungsabwicklung wird automatisch erstellt.</p>
<hr />
@endif
@endif @endif
<p> <p>
Dein Team von,<br /> Dein Team von,<br />

View file

@ -132,8 +132,34 @@
</div> </div>
@endif @endif
<div class="m-checkout"> <div class="m-checkout">
{!! Form::open(['url' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'']) !!} {!! Form::open(['url' => route('checkout.checkout_card_final'), 'class' => 'row clearfix', 'id'=>'']) !!}
@if (\Session::has('elv-managemandate'))
<div class="col-sm-12">
<fieldset class="mb-20 box-border-shadow p-20">
<button type="submit" class="btn btn-warning btn-lg btn-block size-18 btn-text-500 mt-4 faa-parent animated-hover" style="white-space: normal"><i class="fa fa-mail-forward faa-horizontal"></i> SEPA-Lastschriftmandat zustimmen und kauf abschließen</button>
<hr>
<div class="alert alert-success">
{!! urldecode(\Session::get('elv-mandate_text')) !!}
</div>
<hr>
<button type="submit" class="btn btn-warning btn-lg btn-block size-18 btn-text-500 mt-4 faa-parent animated-hover" style="white-space: normal"><i class="fa fa-mail-forward faa-horizontal"></i> SEPA-Lastschriftmandat zustimmen und kauf abschließen</button>
</fieldset>
<input type="hidden" name="mandate_identification" id="mandate_identification" value="{{ \Session::get('elv-mandate_identification') }}">
<input type="hidden" name="creditor_identifier" id="creditor_identifier" value="{{ \Session::get('elv-creditor_identifier') }}">
</div>
@endif
<div class="col-lg-7 col-sm-7"> <div class="col-lg-7 col-sm-7">
<!-- BILLING --> <!-- BILLING -->
<fieldset class="mb-0 box-border-shadow p-20"> <fieldset class="mb-0 box-border-shadow p-20">
@ -435,13 +461,7 @@
</label> </label>
</div> </div>
{{-- <div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="sb#GPY" />
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> giropay - Online-Überweisung</span>
</label>
</div>
--}}
<div class="col-lg-12 nomargin clearfix"> <div class="col-lg-12 nomargin clearfix">
<label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%"> <label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
{!! Form::radio('payment_method', 'sb#PNT', '') !!} {!! Form::radio('payment_method', 'sb#PNT', '') !!}
@ -449,22 +469,13 @@
<img class="float-right" width="90" src="{{asset('images/payments-assets/sofort.png')}}" alt="Sofort"> <img class="float-right" width="90" src="{{asset('images/payments-assets/sofort.png')}}" alt="Sofort">
</label> </label>
</div> </div>
<div class="col-lg-12 nomargin clearfix">
<!--<div class="col-lg-12 nomargin clearfix"> <label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%"> {!! Form::radio('payment_method', 'elv', '') !!}
<input name="payment_method" type="radio" value="wlt#PDT" /> <i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> SEPA Lastschrift</span>
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> paydirekt </span> <img class="float-right" width="90" src="{{asset('images/payments-assets/sepa.png')}}" alt="SEPA Lastschrift">
</label> </label>
</div> </div>
-->
<!-- <div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="fnc#PYS" />
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> Rechnungskauf</span>
</label>
</div>
-->
<div class="col-lg-12 nomargin clearfix"> <div class="col-lg-12 nomargin clearfix">
<label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%"> <label class="mt-4 fs-14 fw-400 radio pull-left" style="width: 100%">
{!! Form::radio('payment_method', 'vor', '') !!} {!! Form::radio('payment_method', 'vor', '') !!}
@ -473,6 +484,27 @@
</label> </label>
</div> </div>
{{-- <div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="sb#GPY" />
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> giropay - Online-Überweisung</span>
</label>
</div>
<div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="wlt#PDT" />
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> paydirekt </span>
</label>
</div>
<div class="col-lg-12 nomargin clearfix">
<label class="mt-0 fs-14 fw-400 radio pull-left" style="width: 100%">
<input name="payment_method" type="radio" value="fnc#PYS" />
<i></i> <span class="weight-400"><span class="fa fa-check text-primary"></span> Rechnungskauf</span>
</label>
</div>
--}}
</div> </div>
</div> </div>
@ -481,9 +513,47 @@
</fieldset> </fieldset>
<!-- /PAYMENT METHOD --> <!-- /PAYMENT METHOD -->
<!-- PAYMENT METHOD --> <!-- PAYMENT METHOD SEPA-->
<fieldset class="box-border-shadow p-20 softhide @if (\Session::has('cc-error')) cc_error @endif" id="creditcard-box-holder"> <fieldset class="box-border-shadow p-20 softhide @if (\Session::has('elv-error')) cc_error @endif" id="sepa-box-holder">
<style>
#elv_content_check .form-group {
margin-bottom: 5px;
}
#elv_content_check input.form-control {
padding: 14px 20px;
}
</style>
<h4>SEPA Lastschrift</h4>
<hr>
<div class="toggle-transparent toggle-bordered-full clearfix">
<div class="toggle active">
<div class="toggle-content" id="elv_content_check">
<div class="row">
<div class="col-md-12">
<label class="mt-0 fs-14 fw-400">Inhaber*</label>
</div>
<div class="form-group col-md-12">
{!! Form::text('elv_bankaccountholder', '', ['class' => 'form-control', 'id'=>'elv_bankaccountholder', 'placeholder'=>'Vorname Nachname']) !!}
</div>
</div>
<div class="form-group">
<label class="mt-0 fs-14 fw-400">IBAN*</label>
{!! Form::text('elv_iban', '', ['class' => 'form-control', 'id'=>'elv_iban', 'placeholder'=>'Beisp.: DE02120300000000202051']) !!}
</div>
<div class="form-group">
<label class="mt-0 fs-14 fw-400">BIC*</label>
{!! Form::text('elv_bic', '', ['class' => 'form-control', 'id'=>'elv_bic', 'placeholder'=>'Beisp.: PBNKDEFF']) !!}
</div>
</div>
</div>
</div>
</fieldset>
<!-- TOTAL / PLACE ORDER -->
<!-- PAYMENT METHOD CC -->
<fieldset class="box-border-shadow p-20 softhide @if (\Session::has('cc-error')) cc_error @endif" id="creditcard-box-holder">
<style> <style>
#cc_content_check .form-group { #cc_content_check .form-group {
margin-bottom: 5px; margin-bottom: 5px;
@ -493,9 +563,7 @@
} }
</style> </style>
<h4>Kreditkarte</h4> <h4>Kreditkarte</h4>
<hr> <hr>
<div class="toggle-transparent toggle-bordered-full clearfix"> <div class="toggle-transparent toggle-bordered-full clearfix">
<div class="toggle active"> <div class="toggle active">
<div class="toggle-content" id="cc_content_check"> <div class="toggle-content" id="cc_content_check">

View file

@ -107,7 +107,6 @@
function showCreditCardPayment(val){ function showCreditCardPayment(val){
console.log(val);
if(val === 'cc'){ if(val === 'cc'){
$('#creditcard-box-holder').show('slow'); $('#creditcard-box-holder').show('slow');
}else{ }else{
@ -120,6 +119,19 @@
showCreditCardPayment($(this).val()); showCreditCardPayment($(this).val());
}); });
function showSEPAPayment(val){
if(val === 'elv'){
$('#sepa-box-holder').show('slow');
}else{
$('#sepa-box-holder').hide('slow');
}
}
showSEPAPayment(jQuery('input[name="payment_method"]:checked').val());
jQuery('input[name="payment_method"]').on('change', function () {
showSEPAPayment($(this).val());
});
</script> </script>