Unofficial Alipay ruby gem.
Note: Alipay::Client API does not have enough feedback in production yet, please fully test in your staging environment before production. You can find legacy API document here.
You should read https://doc.open.alipay.com before using this gem.
To install using Bundler. Add this line to your application's Gemfile:
gem 'alipay', '~> 0.15.0'
Then run:
$ bundle
Or you can manually install using RubyGems:
$ gem install alipay -v 0.15.0
This gem needs to be configured with your application's private key for Alipay and Alipay's public key. Here is a quick guide on generating RSA key for use with this gem to get you started.
require 'alipay'
# setup the client to communicate with either production API or sandbox API
# https://openapi.alipay.com/gateway.do (Production)
# https://openapi.alipaydev.com/gateway.do (Sandbox)
API_URL = 'https://openapi.alipaydev.com/gateway.do'
# setup your own credentials and certificates
APP_ID = '2016xxxxxxxxxxxx'
APP_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\nxkbt...4Wt7tl\n-----END RSA PRIVATE KEY-----\n"
ALIPAY_PUBLIC_KEY="-----BEGIN PUBLIC KEY-----\nTq43T5...OVUAQb3R\n-----END PUBLIC KEY-----\n"
# initialize a client to communicate with the Alipay API
@alipay_client = Alipay::Client.new(
url: API_URL,
app_id: APP_ID
app_private_key: APP_PRIVATE_KEY,
alipay_public_key: ALIPAY_PUBLIC_KEY
)
@alipay_client.page_execute_url(
method: 'alipay.trade.page.pay',
biz_content: {
out_trade_no: '20160401000000',
product_code: 'FAST_INSTANT_TRADE_PAY',
total_amount: '0.01',
subject: 'test'
}.to_json(ascii_only: true), # to_json(ascii_only: true) is important!
timestamp: '2016-04-01 00:00:00'
)
# This method will then return a payment url
# => 'https://openapi.alipaydev.com/gateway.do?app_id=201600...'
Read Alipay::Client or the Quick Start Guide for usage detail.
Bug report or pull request are welcome.
- 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
Please write unit test with your code if necessary.
MIT License