### How to Test ###
1. go to ecommerce website.
2. select product and add to cart.
3. at 3)How shall you pay?, Pay With iDEAL which show the consumer’s bank.
4. submit order.

###  config ###
first of all, add the following jars to the /applications/accounting/lib directory:
ing-iac-2.0.3.jar
jibx-run.jar
remove the line : <exclude name="org/ofbiz/accounting/thirdparty/ideal/**"/> from /accounting/build.xml
run ./ant 

1. go to Accounting component
2. go to Payment Gateway Config, then click find
3. select iDEAL Payment Gateway (iDEAL Config)
4. fill in Update Payment Gateway Config iDEAL (Merchant Id, Merchant ReturnURL, etc.), then click Update


### Configuration Attributes for detailed information for activate ###
1. merchantID: The ID of the webshop, received by the acceptor during the registration process

2. merchantSubId: SubID of the webshop, default value = 0 (zero); only to be changed in consultation with the acquirer

3. merchantReturnURL: URL of the page in the webshop to which the consumer is redirected after an iDEAL transaction. This value can be overruled as necessary in the webshop implementation.

4. acquirerURL: URL of the acceptor’s acquirer; the following prescribed values apply to ING:
              •   Test environment:               https://idealtest.secure-ing.com/ideal/iDeal
              •   Production environment:         https://ideal.secure-ing.com/ideal/iDeal
5. acquirerTimeout: Number of seconds (default = 10) of waiting time for a response from the iDEAL services. If no response is received during that time, an exception is displayed.

6. privateCert: Name of the acceptor’s organization as given during the creation of his or her own certificate. See section 0 for more information about the acceptor’s certificate.

7. acquirerKeyStoreFilename / acquirerKeyStorePassword: Keystore file and acquirer’s password

8. merchantKeyStoreFilename / merchantKeyStorePassword: Keystore file and merchant’s password


### Example iDEAL Configuration:###
You can config on payment.properties

merchantId=005040237
merchantSubId=0
merchantReturnURL=http://localhost:8080/ecommerce/control/idealNotify
acquirerURL=https://idealtest.secure-ing.com/ideal/iDeal
acquirerTimeout=10
expirationPeriod=PT1H
privateCert=acquirer.keystore
merchantKeyStoreFilename=merchant.keystore
merchantKeyStorePassword={xor}bm1sa2pp
acquirerKeyStoreFilename=acquirer.keystore
acquirerKeyStorePassword={xor}MiYPPiwsKDAtOw==




