Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Integracja z DotPay
Forum PHP.pl > Forum > Przedszkole
trifek
Witajcie.
Mam pytanie dotyczące parametru signature w integracji z Dotpay.

Mam taki kod:
  1. private function generateSignature(Request $request, int $orderId, string $dotPayPrice, string $dotPayCurrency, string $dateTime, string $control, string $description, string $email, string $companyName, string $companeEmail): string
  2. {
  3. $pin = env('DOTPAY_PIN');
  4. $sign =
  5. $pin .
  6. env('DOTPAY_SHOP_ID') .
  7. //$_POST['operation_number'].
  8. //$_POST['operation_type'].
  9. 'new'.
  10. $dotPayPrice .
  11. $dotPayCurrency .
  12. //$_POST['operation_withdrawal_amount'].
  13. //$_POST['operation_commission_amount'].
  14. //$_POST['is_completed'].
  15. $dotPayPrice .
  16. $dotPayCurrency .
  17. $dateTime .
  18. //$_POST['operation_related_number'].
  19. $control .
  20. $description .
  21. $email .
  22. $companyName .
  23. $companeEmail;
  24. //$_POST['credit_card_issuer_identification_number'].
  25. //$_POST['credit_card_masked_number'].
  26. //$_POST['credit_card_expiration_year'].
  27. //$_POST['credit_card_expiration_month'].
  28. //$_POST['credit_card_brand_codename'].
  29. //$_POST['credit_card_brand_code'].
  30. //$_POST['credit_card_unique_identifier'].
  31. //$_POST['credit_card_id'].
  32. //$_POST['channel'].
  33. //$_POST['channel_country'].
  34. //$_POST['geoip_country'];
  35. $signature = hash('sha256', $sign);
  36. return $signature;
  37. }

dotPayPrice = kwota transakcji, $dotPayCurrency = waluta transakcji.


Według dotpay moje signature jest źle obliczane (otrzymuję inną wartość signature zwrotną od Dotpaya).

Wie ktoś może co mam nie tak w tej funkcji?
sazian
Masz gotowy kod w dokumentacji https://ssl.dotpay.pl/s2/login/cloudfs1/mag...i_platnosci.pdf
strona 27
trifek
Dzięki za linka, widziałem go już wcześniej.
Zmieniłem swój kod:

Parametry wysyłane do dotpay:
  1. 'api_version' => 'dev',
  2. 'chk' => $signature,
  3. 'amount' => $dotPayPrice,
  4. 'currency' => $dotPayCurrency,
  5. 'description' => $description,
  6. 'control' => $control,
  7. //'signature' => $signature,
  8. 'language' => $dotPayLanguage,
  9. 'ch_lock' => $ch_lock,
  10. 'url' => route('paymentConfirmationSplash'),
  11. 'urlc' => route('paymentConfirmation'),
  12. 'expiration_datetime' => Carbon::now()->addDays(1)->format('Y-m-d\TH:i:s'),
  13. 'payer' => [
  14. 'first_name' => $request->user()->name,
  15. 'email' => $request->user()->email,
  16. 'phone' => $request->user()->phone,
  17. ],


Otrzymuję takiego stringa:


  1. PINIDSKLEPUpaymentnew30.00PLN30.00PLN2019-08-31 10:32:297a0aa3e02570b35d9bcb011b38239c8a94f920ad612191337c1f0d5334e71eeba41f7492ee04e2
    c552652152987051c2db582d9e36e625cf5127353721982b42d0e61acbbe0adae6a00e8792a25ad87
    585e90fa60ec9f1040bf98d627d5d4438FnvJFlHO8a5S4nEWLl8l5wezLdxD5uhc1XWqgzDa3BJQ8UnP
    x3TRgcsmubW28XeRgqyiKozHOT7767YzweqWTLvIAhiOWvEQoGBYfrJOsp6m5jFhKSyAyk6x1H7zji9sE
    sG5bGkABXohDGTSJkmAb0It6tjT1C5j5R8ZQehTyLDN0yQo1g19ztTIsPgmXlKRgmS0iJAEMvtB08koCM
    DByEcxYsQwcDhQlDuZeQIN5wZ2PUM6kfL049syIeXV8OEidryzposEcmSfi2iXqYiPFeIPaAFbvBF1T52
    mfCUs3aBs9w5NdmZr5VQnoWBq2GTRYsPNu8DoeZqICq1eLsKrIQyYPHvLiRVtR5S6OyMq7bQ97CVweT98
    veA3YU10tHSmwqt3Ybg4iUrezYTbYmjJ1k5iZt2kG5sNM6COnzid8hJt8Ecrx6Q9Pr8GCL9Jylw2CjnPm
    EU2mNjNd95WXJoWbCesnGkTCxYVJKwmPXN08x9hWKPiLF3qBL9n12if366SluyHFYTxF6XvJg8CBlNIjI
    RQcwhNN14sI2K6YGkIXSUfbQC5IRwo455QIZOcRFp0a0174c7ba4522733fd7d6ebe18724d7Payment ID 51 - nazwa.mail@icloud.com kontakt@mail.pl


Obliczanie signature:

  1. private function generateSignature(Request $request, int $orderId, string $dotPayPrice, string $dotPayCurrency, string $dateTime, string $control, string $description, string $email, string $companyName, string $companeEmail): string
  2. {
  3. $sign =
  4. env('DOTPAY_PIN') . // PIN sklepu
  5. env('DOTPAY_SHOP_ID') . // ID sklepu
  6. //$_POST['operation_number'].
  7. 'payment' . // rodzaj płatności
  8. 'new' . // status
  9. $dotPayPrice . // wartosc zamowienia ze sklepu w formacie XX.XX
  10. $dotPayCurrency . // waluta PLN
  11. $dotPayPrice . // wartosc zamowienia ze sklepu w formacie XX.XX - identyczna jak wyzej
  12. $dotPayCurrency . // waluta PLN jw
  13. $dateTime . // 2019-08-31 10:32:29
  14. $control .
  15. $description .
  16. $email .
  17. $companyName .
  18. $companeEmail .
  19. 1; // channel
  20. //dd($sign);
  21. $signature = hash('sha256', $sign);
  22.  
  23. return $signature;
  24. }



Jednak w dalszym ciągu mam niezgodność signature sad.gif

Mój całościowy kod wygląda tak: https://pastebin.com/e7fAFrJk
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.