PayumBundle을 symfony2에서 구성했지만 작동하지 않습니다.PayumBundle 보안 헤더가 유효하지 않습니다
페이팔 사이트로 리디렉션되지 않았습니다.
오류가 발생했습니다. '오류', '결제 실패'정보를 찾을 수 있습니까? =이> 문자열 '보안 오류'(길이 = 14) 'L_LONGMESSAGE0'=> 문자열 '보안 헤더가 위해서 var_dump에서 ($ 상태)
'L_SHORTMESSAGE0 '업데이트 1
내가 오류를 foud 유효하지 않음 '(길이 = 28)
내가 설정 샌드 박스에서 작동하지 않을 때 메신저가 페이팔로 리디렉션되지만 금액, 지불 이름을 채우지 않았습니다 - 구성 방법은 무엇입니까?
내가이 예에서이를 구성 http://payum.forma-dev.com/documentation/0.8/PayumBundle/simple_purchase_examples/paypal_express_checkout
설정 :
payum:
security:
token_storage:
ed\partnerBundle\Entity\PayumSecurityToken:
doctrine:
driver: orm
contexts:
frei_payment:
paypal_express_checkout_nvp:
api:
options:
username: 'myusername'
password: 'mypass'
signature: 'mysing'
sandbox: true
storages:
ed\partnerBundle\Entity\PaymentDetails:
doctrine:
driver: orm
라우팅 : 지불 컨트롤러에서
payment_start:
pattern: /payment
defaults: { _controller: edpartnerBundle:Payment:preparePaypalExpressCheckoutPayment }
edpartner_payment_done:
pattern: /payment/done
defaults: { _controller: edpartnerBundle:Payment:done }
행동 :
public function doneAction(){
$request = $this->getRequest();
$token = $this->get('payum.security.http_request_verifier')->verify($request);
$payment = $this->get('payum')->getPayment($token->getPaymentName());
$status = new BinaryMaskStatusRequest($token);
$payment->execute($status);
if ($status->isSuccess()) {
$this->getUser()->addCredits(100);
$this->getRequest()->getSession()->getFlashBag()->set(
'notice',
'Payment success. Credits were added'
);
} else if ($status->isPending()) {
$this->getRequest()->getSession()->getFlashBag()->set(
'notice',
'Payment is still pending. Credits were not added'
);
} else {
$this->getRequest()->getSession()->getFlashBag()->set('error', 'Payment failed');
}
return $this->redirect('homepage');
}
/**
*/
public function preparePaypalExpressCheckoutPaymentAction(){
$paymentName = 'my_payment';
$storage = $this->get('payum')->getStorageForClass(
'ed\partnerBundle\Entity\PaymentDetails',
$paymentName
);
/** @var \ed\partnerBundle\Entity\PaymentDetails $paymentDetails */
$paymentDetails = $storage->createModel();
$paymentDetails['PAYMENTREQUEST_0_CURRENCYCODE'] = 'USD';
$paymentDetails['PAYMENTREQUEST_0_AMT'] = 1.23;
$storage->updateModel($paymentDetails);
$captureToken = $this->get('payum.security.token_factory')->createCaptureToken(
$paymentName,
$paymentDetails,
'edpartner_payment_done' // the route to redirect after capture;
);
$paymentDetails['INVNUM'] = $paymentDetails->getId();
$paymentDetails['RETURNURL'] = $captureToken->getTargetUrl();
$paymentDetails['CANCELURL'] = $captureToken->getTargetUrl();
$storage->updateModel($paymentDetails);
return $this->redirect($captureToken->getTargetUrl());
}
전 브라우저에서/지불 URL로 이동하고 메신저 홈페이지로 리디렉션 됨 - 데이터베이스에 새 레코드가 표시됩니다.하지만 지불을하지 않습니다. 왜 페이팔로 리디렉션되지 않았습니까?
여기에 여러 번 묻습니다. 실제로 payum은 세부 정보 모델에 모든 정보를 저장합니다. 거기에 L_ERRORLONG0 (이와 비슷한 것) 텍스트 "보안 헤더 유효하지 않은"필드를 찾아야합니다. –
문제가있을 때마다 세부 사항을 확인하십시오. Payum이 게이트웨이에서 가져올 수있는 모든 세부 사항을 포함해야합니다. –
예를 들어이 질문을 확인할 수 있습니다. http://stackoverflow.com/questions/18548701/payum-symfony2-bundle-not-redirecting-me-to-paypal-on-paypal-express-checkout –