Manson,
1. the payer select the journal and the price are listed? (question: does OJS provide this form or I need to create it myself?)
OJS does not currently provide this form. This is something we would very much like to add, so if you do this, then I would greatly appreciate it if you could share the code with us. Essentially, you'd have to display something similar to the Subscription Type form to the public and let them click on a link that leads them to a payment. There is already a payment point for subscriptions (in the case the subscription already exists and the user is simply renewing). See pages/UserHandler.inc.php. There is a method there called payRenewSubscription().
2. payer by credit card (this service will provide by the bank)
This should be implemented as a PayMethod plugin. See the PayPal method for more details on how this should be implemented. You'll have to implement a handle() and a displayPaymentForm() methods, among others.
3. message return from the bank (this service will provide)
You will handle the return from the bank inside the handle method mentioned above. You have to point the bank to the appropriate URL (something like, I don't remember exactly,
http://www.yourjournal.com/index.php/ab ... PluginName).
4. if AP - Transaction Approved, allow the payer read the journal "automatically". (question: where is the related code ? can OJS automatically allow user read after they paid?)
If you've created the queuedPayment correctly (re: question 1), then you can do $ojsPaymentManager->fulfillQueuedPayment($queuedPayment, $this->getName()). That line is taken from PayPalPlugin.inc.php. This will extend the subscription in the appropriate way. This method can be found in: classes/payment/ojs/OJSPaymentManager.inc.php
5. send email to the payer (question: where is the related code ?)
There are numerous examples in the code of how to compose an email. For example, the PayPal plugin itself sends out an email to the journal manager if something goes wrong. You can look at the Mail and the MailTemplate classes throughout the code.
Good luck!