|
14 | 14 |
|
15 | 15 | ### Minimum Gereksinimler |
16 | 16 | - PHP >= 7.4 |
17 | | -- mews/pos ^1.3 |
| 17 | +- mews/pos ^1.6 |
18 | 18 | - laravel 8, 9, 10, 11 |
19 | 19 |
|
20 | 20 | ### Kurulum |
|
148 | 148 | if ($event->getGatewayClass() !== \Mews\Pos\Gateways\KuveytPos::class) { |
149 | 149 | return; |
150 | 150 | } |
151 | | - |
152 | 151 | /** |
153 | 152 | * ekstra eklenmesi gereken verileri isteseniz $order icine ekleyip sonra o verilere |
154 | 153 | * $event->getOrder() ile erisebilirsiniz. |
155 | 154 | */ |
156 | 155 | $additionalRequestDataForKuveyt = [ |
157 | 156 | 'DeviceData' => [ |
158 | | - /** |
159 | | - * DeviceChannel : DeviceData alanı içerisinde gönderilmesi beklenen işlemin yapıldığı cihaz bilgisi. |
160 | | - * 2 karakter olmalıdır. 01-Mobil, 02-Web Browser için kullanılmalıdır. |
161 | | - */ |
162 | 157 | 'DeviceChannel' => '02', |
163 | 158 | ], |
164 | 159 | 'CardHolderData' => [ |
165 | | - /** |
166 | | - * BillAddrCity: Kullanılan kart ile ilişkili kart hamilinin fatura adres şehri. |
167 | | - * Maksimum 50 karakter uzunluğunda olmalıdır. |
168 | | - */ |
169 | 160 | 'BillAddrCity' => 'İstanbul', |
170 | | - /** |
171 | | - * BillAddrCountry Kullanılan kart ile ilişkili kart hamilinin fatura adresindeki ülke kodu. |
172 | | - * Maksimum 3 karakter uzunluğunda olmalıdır. |
173 | | - * ISO 3166-1 sayısal üç haneli ülke kodu standardı kullanılmalıdır. |
174 | | - */ |
175 | 161 | 'BillAddrCountry' => '792', |
176 | | - /** |
177 | | - * BillAddrLine1: Kullanılan kart ile ilişkili kart hamilinin teslimat adresinde yer alan sokak vb. bilgileri içeren açık adresi. |
178 | | - * Maksimum 150 karakter uzunluğunda olmalıdır. |
179 | | - */ |
180 | 162 | 'BillAddrLine1' => 'XXX Mahallesi XXX Caddesi No 55 Daire 1', |
181 | | - /** |
182 | | - * BillAddrPostCode: Kullanılan kart ile ilişkili kart hamilinin fatura adresindeki posta kodu. |
183 | | - */ |
184 | 163 | 'BillAddrPostCode' => '34000', |
185 | | - /** |
186 | | - * BillAddrState: CardHolderData alanı içerisinde gönderilmesi beklenen ödemede kullanılan kart ile ilişkili kart hamilinin fatura adresindeki il veya eyalet bilgisi kodu. |
187 | | - * ISO 3166-2'de tanımlı olan il/eyalet kodu olmalıdır. |
188 | | - */ |
189 | 164 | 'BillAddrState' => '40', |
190 | | - /** |
191 | | - * Email: Kullanılan kart ile ilişkili kart hamilinin iş yerinde oluşturduğu hesapta kullandığı email adresi. |
192 | | - * Maksimum 254 karakter uzunluğunda olmalıdır. |
193 | | - */ |
194 | 165 | 'Email' => 'xxxxx@gmail.com', |
195 | 166 | 'MobilePhone' => [ |
196 | | - /** |
197 | | - * Cc: Kullanılan kart ile ilişkili kart hamilinin cep telefonuna ait ülke kodu. 1-3 karakter uzunluğunda olmalıdır. |
198 | | - */ |
199 | 167 | 'Cc' => '90', |
200 | | - /** |
201 | | - * Subscriber: Kullanılan kart ile ilişkili kart hamilinin cep telefonuna ait abone numarası. |
202 | | - * Maksimum 15 karakter uzunluğunda olmalıdır. |
203 | | - */ |
204 | | - 'Subscriber' => '1234567899', |
| 168 | + 'Subscriber' => '5554567899', |
205 | 169 | ], |
206 | 170 | ], |
207 | 171 | ]; |
@@ -311,7 +275,18 @@ class ThreeDSecurePaymentController extends Controller |
311 | 275 | $session->set('tx', $transaction); |
312 | 276 |
|
313 | 277 | try { |
314 | | - $formData = $this->pos->get3DFormData($order, $this->paymentModel, $transaction, $card); |
| 278 | + $formData = $this->pos->get3DFormData( |
| 279 | + $order, |
| 280 | + $this->paymentModel, |
| 281 | + $transaction, |
| 282 | + $card, |
| 283 | + /** |
| 284 | + * MODEL_3D_SECURE veya MODEL_3D_PAY ödemelerde kredi kart verileri olmadan |
| 285 | + * form verisini oluşturmak için true yapabilirsiniz. |
| 286 | + * Yine de bazı gatewaylerde kartsız form verisi oluşturulamıyor. |
| 287 | + */ |
| 288 | + false |
| 289 | + ); |
315 | 290 | } catch (\Throwable $e) { |
316 | 291 | dd($e); |
317 | 292 | } |
@@ -442,24 +417,28 @@ Route::match(['GET','POST'], '/payment/3d/response', [\App\Http\Controllers\Thre |
442 | 417 |
|
443 | 418 | ```html |
444 | 419 | <!--/resources/views/redirect-form.blade.php--> |
445 | | -<form method="{{ $formData['method'] }}" action="{{ $formData['gateway'] }}" class="redirect-form" role="form"> |
446 | | - @foreach($formData['inputs'] as $key => $value) |
447 | | - <input type="hidden" name="{{ $key }}" value="{{ $value }}"> |
448 | | - @endforeach |
449 | | - <div class="text-center">Redirecting...</div> |
450 | | - <hr> |
451 | | - <div class="form-group text-center"> |
452 | | - <button type="submit" class="btn btn-lg btn-block btn-success">Submit</button> |
453 | | - </div> |
454 | | -
|
455 | | -</form> |
456 | | -<script> |
457 | | - // Formu JS ile otomatik submit ederek kullaniciyi banka gatewayine yonlendiriyoruz. |
458 | | - let redirectForm = document.querySelector('form.redirect-form'); |
459 | | - if (redirectForm) { |
460 | | - redirectForm.submit(); |
461 | | - } |
462 | | -</script> |
| 420 | +@if(is_string($formData)) |
| 421 | + {!! $formData !!} |
| 422 | +@else |
| 423 | + <form method="{{ $formData['method'] }}" action="{{ $formData['gateway'] }}" class="redirect-form" role="form"> |
| 424 | + @foreach($formData['inputs'] as $key => $value) |
| 425 | + <input type="hidden" name="{{ $key }}" value="{{ $value }}"> |
| 426 | + @endforeach |
| 427 | + <div class="text-center">Redirecting...</div> |
| 428 | + <hr> |
| 429 | + <div class="form-group text-center"> |
| 430 | + <button type="submit" class="btn btn-lg btn-block btn-success">Submit</button> |
| 431 | + </div> |
| 432 | + |
| 433 | + </form> |
| 434 | + <script> |
| 435 | + // Formu JS ile otomatik submit ederek kullaniciyi banka gatewayine yonlendiriyoruz. |
| 436 | + let redirectForm = document.querySelector('form.redirect-form'); |
| 437 | + if (redirectForm) { |
| 438 | + redirectForm.submit(); |
| 439 | + } |
| 440 | + </script> |
| 441 | +@endif |
463 | 442 | ``` |
464 | 443 |
|
465 | 444 | ### Troubleshoots |
|
0 commit comments