|
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