Nie jestem w stanie zweryfikować podpisu płatności.
Więc to jest kod dostarczony przez Razorpay.
$attributes = array('razorpay_signature' => $razorpay_signature, 'razorpay_payment_id' => $razorpay_payment_id , 'razorpay_order_id' => $razorpay_order_id);
$signatureVerified = $api->utility->verifyPaymentSignature($attributes);
kiedy to sprawdzę.
if($signatureVerified) {
echo 'signature verified';
} else {
echo "signature didn't verify";
}
Otrzymuję tylko, że podpis nie został zweryfikowany.
P.s: Mam podpis płatności, identyfikator zamówienia i identyfikator płatności od razorpay.
2 odpowiedzi
Funkcja niczego nie zwraca, po prostu zgłasza wyjątek, gdy podpis się nie zgadza. To wydaje się mylić wielu ludzi, więc istnieje PR, aby dodać wartość zwracaną: Link . Zostanie uwzględniony w następnym wydaniu.
Właściwie nie musisz przypisywać zmiennej do weryfikacji płatności.
Musisz go umieścić w bloku try catch, aby przeprowadzić weryfikację
tak jak to.
try{
$attributes = array(
'razorpay_order_id' => $request->razorpay_order_id,
'razorpay_payment_id' => $request->razorpay_payment_id,
'razorpay_signature' => $request->razorpay_signature
);
$api->utility->verifyPaymentSignature($attributes);
}
catch(SignatureVerificationError $e){
$response = 'failure' ;
$error = 'Razorpay Error : ' . $e->getMessage();
}
return response('success');
Tak więc, w przypadku niepowodzenia, przejdzie w blok catch, albo zwróci sukces
Podobne pytania
Nowe pytania
php
PHP to szeroko stosowany, wysokopoziomowy, dynamiczny, zorientowany obiektowo i interpretowany język skryptowy przeznaczony głównie do tworzenia stron WWW po stronie serwera. Używane w przypadku pytań dotyczących języka PHP.
if($signatureVerified)
, co nigdy nie zadziała, ponieważverifyPaymentSignature
nie zwraca wartości i zawsze nie powiedzie sięif
.