2013-10-04 2 views
0

Symfony2 용 JMS 결제 묶음을 사용하여 맞춤 결제 수단을 만들려고합니다. Paypal 번들을 정상적으로 설정했습니다. 그러나 은행 송금으로 지불 할 수있는 두 번째 옵션이 필요합니다.JMS 맞춤 결제 플러그인 - Symfony2

아래 코드는 제가 가지고있는 코드입니다. 그러나 이것은 새로운 지불 옵션을 표시하지 않습니다.

Form 클래스 :

namespace JMS\Payment\BanktransferBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class BanktransferType extends AbstractType { 

public function buildForm(FormBuilderInterface $builder, array $options) { 

    $builder 
      ->add('holder', 'text', array('required' => false)) 
      ->add('number', 'text', array('required' => false)) 
      ->add('expires', 'date', array('required' => false)) 
      ->add('code', 'text', array('required' => false)) 
    ; 
} 

public function getName() { 
    return 'credit_card'; 
} 

} 

플러그인 클래스 :

namespace JMS\Payment\BanktransferBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class BanktransferType extends AbstractType { 

public function buildForm(FormBuilderInterface $builder, array $options) { 

    $builder 
      ->add('holder', 'text', array('required' => false)) 
      ->add('number', 'text', array('required' => false)) 
      ->add('expires', 'date', array('required' => false)) 
      ->add('code', 'text', array('required' => false)) 
    ; 
} 

public function getName() { 
    return 'credit_card'; 
} 

} 

Services.yml 내가 찾을 수있는 JMS 지불 번들 위해서는 어떻게해야합니까 무엇

services: 
payment.plugin.banktransfer: 
    class: JMS\Payment\BanktransferBundle\Plugin\BanktransferPlugin 
    tags: [{name: payment.plugin}] 

credit_card_type: 
    class: JMS\Payment\BanktransferBundle\Form\BanktransferType 
    tags: 
     - { name: form.type, alias: credit_card } 
     - { name: payment.method_type } 

내 플러그인?

답변

0

확인. 나는 YML 대신에 XML을 사용하여 보여준 것처럼 보였다.

services.xml 파일은

<?xml version="1.0" ?> 
<container xmlns="http://symfony.com/schema/dic/services" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema /dic/services/services-1.0.xsd"> 

<parameters> 
    <parameter key="payment.plugin.cash_checkout.class">JMS\Payment\CashBundle\Plugin\CashPlugin</parameter> 
    <parameter key="payment.form.cash_checkout_type.class">JMS\Payment\CashBundle\Form\CashType</parameter> 
</parameters> 

<services> 
    <service id="payment.form.cash_checkout_type" class="%payment.form.cash_checkout_type.class%"> 
     <tag name="payment.method_form_type" /> 
     <tag name="form.type" alias="cash_checkout" /> 
    </service> 
</services> 
</container> 
0

당신은 우리에게 실제 플러그인 클래스를 보여줄 수 있을까? 나는 당신이 틀린 내용을 배치했다는 것을 생각한다. 동일한 문제가있어서 JMS documentation을 기반으로 한 지침을 따랐습니다.

내 플러그인 클래스 (최소) :

<?php 
    //... 

    use \JMS\Payment\CoreBundle\Plugin\AbstractPlugin; 

    class DebitPlugin extends AbstractPlugin { 
     public function processes($name) { 
     return 'debit' === $name; 
     } 
    } 

그리고 컨트롤러에 당신이 (내 경우 '직불'에서) 플러그인에 따라 이름을 추가해야

.

<?php 
    //... 
    $form = $this->getFormFactory()->create('debit', null, array()); 
    //... 

희망 하시겠습니까?