我正在使用JMSPaymentCoreBundle和JMSPaymentPaypalBundle并且一切正常。但现在我需要向Paypal发送一个自定义字段,然后IPN消息确认将其发回给我。
我尝试在PaymentInstruction中将此“自定义”字段添加为ExtendedData,但Paypal不会将此字段发回给我。有没有办法做到这一点?我准备PaymentInstruction时的部分代码:
$router = $this->get('router');
$extendedData = new ExtendedData();
$extendedData->set('return_url',$router->generate('payment_complete', array(
'id' => $orden->getId(),
), true));
$extendedData->set('cancel_url', $router->generate('payment_cancel', array(
'id' => $orden->getId(),
), true));
$extendedData->set('default_method', 'payment_paypal');
$extendedData->set('item_name', $orden->getItemName());
$extendedData->set('item_number', $orden->getId());
$extendedData->set('custom', 'customvalue');
$instruction = new PaymentInstruction((float)$orden->getAmount(), $orden->getCurrency(), 'paypal_express_checkout', $extendedData);
$ppc = $this->get('payment.plugin_controller');
$ppc->createPaymentInstruction($instruction);
$orden->setPaymentInstruction($instruction);
$em->persist($orden);
$em->flush();
谢谢!
答案 0 :(得分:0)
我自己回答:
$extendedData->set('checkout_params',array(
'PAYMENTREQUEST_0_CUSTOM' => $orden->getId()));
它可以包括其他参数: L_PAYMENTREQUEST_0_NAME0, L_PAYMENTREQUEST_0_NUMBER0, L_PAYMENTREQUEST_0_DESC0, L_PAYMENTREQUEST_0_AMT0, L_PAYMENTREQUEST_0_QTY0, ...