wepay-api
is a Ruby wrapper for Wepay API.
Add this line to your application's Gemfile:
gem 'wepay-api'
Or install it yourself as:
$ gem install wepay-api
wepay-api
can be configured as following:
Wepay.configure do |config|
config.client_id = ... # app id (compulsory)
config.client_secret = ... # app secret (compulsory)
config.access_token = ... # access token of the app (compulsory)
config.account_id = ... # app's account id (compulsory)
config.scope = ... # OAuth permissions (comma separated string) (compulsory)
config.using_stage = ... # use test environment (true/false) (compulsory)
config.open_timeout = 5 # default is 5 (seconds) (optional)
config.timeout = 10 # default is 10 (seconds) (optional)
end
All the configuration can be accessed later on as followings:
Wepay.client_id
Wepay.client_secret
Wepay.access_token
...
To get the authorization URL for OAuth, use following method:
Wepay.authorization_url(redirect_uri)
Refer to https://stage.wepay.com/developer/reference/oauth2#authorize for more details.
To get the access token from user, use following method:
Wepay.get_access_token(code, redirect_uri)
Refer to https://stage.wepay.com/developer/reference/oauth2#token for more details.
2014-01-08
Notice: WePay is using POST for ALL the requests, even the API method says "get_..."
In order to make an API call, we can follow the convention for the method call:
Wepay.api_type
.api_method
(params)
For example, to create a checkout:
Wepay.checkout.create(
short_description: "my description for the checkout",
type: "GOODS",
fee_payer: "payee",
amount: 10,
redirect_uri: "redirect_uri",
...
)
params
is a Hash which captures the whole query as in Wepay API documentation, so refer to the documentation if any doubts.
Response from these API calls will be converted to Hashied::Mash
object to make it easier for data accessing.
Refer to https://github.com/intridea/hashie#mash for more details.
After configured, the http client from wepay-api
will try to make use of app's access_token
(in the configuration) as the default authorization of the api calls.
There are some situations that user's access_token
need to be used, e.g. create an account for the user, so we can embed the user's access_token
in the call by adding field access_token
to the params, for example:
Wepay.account.create(
...
access_token: "user's access token"
)
If an API call has errors, it will raise a Wepay::ApiError with following fields:
- type, e.g. invalid_request
- code, e.g. 1001
- message
Give a rescue block to the API calls to make sure the error is handled in any situation.
- Copy
spec/settings.yml.example
intospec/settings.yml
and replace with your credentials to make record the requests for testing using VCR - Before committing VCR fixtures, remember to remove any sensitive data from the fixtures: account id, client secret, ...
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request