layout | title |
---|---|
default |
README |
- 💻
- PHP >= 7.4
- Composer
- NodeJs
- NOTE: For MacOS Mojave users, visit here and here first.
- Clone the repository using
git clone ssh://[email protected]/ualibraries/ual-payments.git
. - Run
composer install
- Copy
.env
to.env.local
and open it in a text editor. - Create an empty database.
- Replace the
DB_*
with the correct credentials for your database connection. - Run
bin/console doctrine:migrations:migrate
to get the database structure in place. - Run
npm install
- Run
npm run build
- Generate an Alma API key with read/write access to the Users API in the appropriate environment (sandbox or prod) and add the correct
API_URL
andAPI_KEY
values. - Update the
PAYFLOW_*
properties with correct credentials for your Payflow Link account. - Log in to your Payflow Link account and navigate to Service Settings > Configuration. Under "Form Configuration", set "Return URL" to be the root of your application (e.g.
http://www.example.com
) and set the "Silent POST URL" value to the/result
endpoint of the application (e.g.http://www.example.com/result
). In order for Payflow to successfully post success and failure messages to your application, your server must be publicly available. For local development, a tool like ngrok or localtunnel can provide public URLs for Payflow. - (Optional) Set
TEST_ID
andTEST_PASS
to the credentials for a test user in your Alma system. These credentials will be used while running automated tests. - (Optional) Install Zombie.js globally:
npm install -g zombie
. This is necessary for running automated tests due to a quirk in the Mink ZombieDriver. - (Optional) Enable emergency logging in Slack for production environments by creating a new Slack incoming webhook and copying the webhook url to the
SLACK_LOGGING
parameter in.env
. UpdateSLACK_CHANNEL
with the name of the channel you want the emergency logs to go to. Make sureSLACK_CHANNEL
doesn't start with a #, otherwise the.env
file will interpret the line as a comment!
This project uses Deployer for its deployments. Deployment commands are scripted in composer.json
. To deploy, use the following commands:
- Production:
composer deploy:prd
- Staging:
composer deploy:stg
- Production - pay-prd
- Staging - pay-stg
- If you don't already have an SSH key on your development machine, generate one and add it to the ssh-agent.
- Add your SSH key to the server environment for the
deploy
user. You can do this usingssh-copy-id
:
ssh-copy-id deploy@pay-prd
If you don't have the password for the deploy account, you can ask someone who already has server access to add your key. Send them your public key (e.g. ~/.ssh/id_rsa.pub
) and have them append it to the authorized_keys
file for the deploy
user:
deploy@pay-prd:~$ cat your_id_rsa.pub >> /home/deploy/.ssh/authorized_keys
To rollback to the previous release, run composer deploy:rollback
. See Deployer documentation for more.
Additional documentation can be found in the docs
directory.
Documentation related to the UAL Payments API (namespaces, classes, etc) is automatically generated by phpDox.
Build the phpDox documentation by running composer docs:build
.
The phpDox documentation is automatically built and deployed by CircleCI whenever changes are pushed to master
. If for some reason you want to manually deploy a change to the documentation, you can do it by running composer docs:deploy
. You may need to specify your AWS profile: composer docs:deploy -- --profile=ual
.
View the phpDox documentation at UAL Payments Documentation (http://ualibr-payments-documentation.s3-website-us-west-2.amazonaws.com
).
Licensed under the MIT license.