Installation
Add this line to your application's Gemfile:
gem 'upop', :git => 'https://github.com/oldfritter/upop'
And then execute:
$ bundle install
Usage
Config
Upop.store_no = '105550149170027' # Your store NO.
Upop.store_name = '上海一树网络科技有限公司' # Your company name.
Upop.key = '88888888' # Your key.
Upop.UPOP_TRADE_URL = 'http://58.246.226.99' # This is the test Gateway.
Generate payment options
@option = {
merId: Upop.store_no,
backEndUrl: orders.first.call_back_url{payment = 'upop'},
frontEndUrl: orders.first.call_back_url{payment = 'upop'},
orderTime: Time.now.strftime('%Y%m%d%H%M%S'),
orderNumber: orders.first.payment_sn,
orderAmount: (orders.collect{|order|order.order_total_price}.sum * 100).to_i,
orderCurrency: 156,
customerIp: orders.first.customer.ip
} # 构建option
@options = Upop::Service.desktop_payment @option
Payment form
<form id="union_pay_form" action="<%= Upop.UPOP_TRADE_URL %>/UpopWeb/api/Pay.action" method='POST'>
<input type="hidden" name='backEndUrl' value='<%= @options['backEndUrl'] %>'/>
<input type="hidden" name='charset' value='<%= @options['charset'] %>'/>
<input type="hidden" name='customerIp' value='<%= @options['customerIp'] %>'/>
<input type="hidden" name='frontEndUrl' value='<%= @options['frontEndUrl'] %>'/>
<input type="hidden" name='merAbbr' value='<%= @options['merAbbr'] %>'/>
<input type="hidden" name='merId' value='<%= @options['merId'] %>'/>
<input type="hidden" name='orderAmount' value='<%= @options['orderAmount'] %>'/>
<input type="hidden" name='orderCurrency' value='<%= @options['orderCurrency'] %>'/>
<input type="hidden" name='orderNumber' value='<%= @options['orderNumber'] %>'/>
<input type="hidden" name='orderTime' value='<%= @options['orderTime'] %>'/>
<input type="hidden" name='orderTimeout' value='<%= @options['orderTimeout'] %>'/>
<input type="hidden" name='signMethod' value='<%= @options['signMethod'] %>'/>
<input type="hidden" name='signature' value='<%= @options['signature'] %>'/>
<input type="hidden" name='transType' value='<%= @options['transType'] %>'/>
<input type="hidden" name='version' value='<%= @options['version'] %>'/>
<input type='submit'/>
</form>
Verify
def upop_notify
return false unless Upop::Sign.verify? params.except('action', 'controller')
# Do something.
render text: 'success'
end
def upop_success
return false unless Upop::Sign.verify? params.except('action', 'controller')
# Do something.
redirect_to #your success page.
end

本文详细介绍了如何将UPop SDK集成到应用程序中,实现在线支付功能。包括安装、配置、生成支付选项、支付表单创建及验证过程。
3736

被折叠的 条评论
为什么被折叠?



