使用JMSPaymentCoreBundle和JMSPaymentPaypalBundle发送自定义字段

时间:2013-09-02 11:07:15

标签: symfony paypal

我正在使用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();

谢谢!

1 个答案:

答案 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, ...