alipay_mobile
所属分类:支付接口
开发工具:Ruby
文件大小:0KB
下载次数:0
上传日期:2021-05-25 05:48:41
上 传 者:
sh-1993
说明: 支付宝_移动,,
(alipay_mobile,,)
文件列表:
Gemfile (91, 2021-05-24)
Gemfile.lock (347, 2021-05-24)
Rakefile (173, 2021-05-24)
alipay_mobile.gemspec (974, 2021-05-24)
lib/ (0, 2021-05-24)
lib/alipay_mobile.rb (279, 2021-05-24)
lib/alipay_mobile/ (0, 2021-05-24)
lib/alipay_mobile/notify.rb (494, 2021-05-24)
lib/alipay_mobile/service.rb (1823, 2021-05-24)
lib/alipay_mobile/sign.rb (437, 2021-05-24)
lib/alipay_mobile/utils.rb (602, 2021-05-24)
lib/alipay_mobile/version.rb (44, 2021-05-24)
test/ (0, 2021-05-24)
test/notify_test.rb (986, 2021-05-24)
test/service_test.rb (85, 2021-05-24)
test/sign_test.rb (574, 2021-05-24)
test/utils_test.rb (339, 2021-05-24)
test_helper.rb (162, 2021-05-24)
# AlipayMobile
A simple alipay_mobile ruby gem, without unnecessary magic or wraper, it's directly facing how alipay_mobile api works.
## Installation
Add this line to your application's Gemfile:
```ruby
gem 'alipay_mobile', :git => 'https://github.com/oldfritter/alipay_mobile.git'
```
And then execute:
```sh
$ bundle install
```
## Usage
### Config
```ruby
AlipayMobile.pid = 'YOUR_PID'
AlipayMobile.key = 'YOUR_KEY'
AlipayMobile.seller_email = 'YOUR_SELLER_EMAIL'
```
### Generate payment url
```ruby
options = {req_id: orders.first.payment_sn, format: 'xml', v: '2.0', sec_id: 'MD5'}
options[:req_data] = "
#{order.subject}
#{order.out_trade_no}
#{order.order_total_price}
#{Alipay.seller_email}
#{call_back_url}
#{notify_url}
#{order.out_user}
#{merchant_url}
3600
1
".gsub(/[\r\n]+/,'')
#获取token:
url = AlipayMobile::Service.mobile_web_instant_credit_authorization(options)
@token = open(url) {|resp|return Nokogiri::HTML(URI.unescape resp.read).css('request_token').text}
#交易
options = {
service: 'alipay.wap.auth.authAndExecute',
_input_charset: 'utf-8',
partner: AlipayMobile.pid,
seller_email: AlipayMobile.seller_email,
req_id: order.uniq_id,
format: 'xml',
v: '2.0',
sec_id: 'MD5'
}
options[:req_data] = "
#{@token}"
payment_url = AlipayMobile::Service.mobile_web_instant_credit_transaction_url(options)
redirect_to payment_url
```
You can redirect user to this payment url, and user will see a payment page for his/her order.
Current support three payment type:
```ruby
AlipayMobile::Service#mobile_web_instant_credit_authorization # 手机网页即时到账授权接口
AlipayMobile::Service#mobile_web_instant_credit_transaction_url # 手机网页即时到账交易接口
```
### Verify notify
```ruby
# example in rails
require 'nokogiri'
def alipay_mobile_notify
return false unless AlipayMobile::Notify.verify? params
nokogiri = Nokogiri::XML params['notify_data']
payment_history = PaymentHistory.where(payment_sn: nokogiri.css('out_trade_no').text).first # PaymentHistory is a Model in my project.
if nokogiri.css('trade_status').text == 'TRADE_FINISHED' || nokogiri.css('trade_status').text == 'TRADE_SUCCESS'
.....your code....
end
render text: 'success' # Here must return 'success'.
end
```
## Contributing
Bug report or pull request are welcome. leon.zcf(at)gmail.com
近期下载者:
相关文件:
收藏者: