本文旨在介绍如何完成在应用Ruby开发的网站(非Rails亦可)内集成支付宝的手机网页支付功能.
1.安装GEM包:
gem 'alipay_mobile', :github => 'https://github.com/oldfritter/alipay_mobile'
2.配置
AlipayMobile.pid = 'YOUR_PID' AlipayMobile.key = 'YOUR_KEY' AlipayMobile.seller_email = 'YOUR_SELLER_EMAIL'
3.完成支付业务
options = {req_id: orders.first.payment_sn, format: 'xml', v: '2.0', sec_id: 'MD5'} options[:req_data] = "<direct_trade_create_req><subject>#{orders.collect{|order|order.subject}.join(",").gsub(' ','')}</subject><out_trade_no>#{orders.first.out_trade_no}</out_trade_no><total_fee>#{orders.collect{|order|order.order_total_price}.sum}</total_fee><seller_account_name>#{Alipay.seller_email}</seller_account_name><call_back_url>#{orders.first.call_back_url{payment = 'alipay_mobile'}}</call_back_url><notify_url>#{orders.first.notify_url{payment = 'alipay_mobile'}}</notify_url><out_user>#{orders.first.out_user}</out_user><merchant_url>#{orders.first.merchant_url{payment = 'alipay_mobile'}}</merchant_url><pay_expire>3600</pay_expire><payment_type>1</payment_type></direct_trade_create_req>" #获取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: orders.first.payment_sn, format: 'xml', v: '2.0', sec_id: 'MD5' } options[:req_data] = "<auth_and_execute_req><request_token>#{@token}</request_token></auth_and_execute_req>" payment_url = AlipayMobile::Service.mobile_web_instant_credit_transaction_url(options) redirect_to payment_url
4.验证支付宝的返回
# This is a action in the controller. 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
相关推荐
- **API 接口**:与第三方支付平台(如支付宝、微信支付)的接口集成,实现支付功能。 - **安全技术**:HTTPS 加密通信、CSRF 防御、XSS 防护等保障用户信息安全。 - **缓存**:Redis 或 Memcached 可用于提高数据...
- 结算与支付:集成第三方支付接口,如支付宝、微信支付,完成在线交易。 - 订单处理:订单创建、状态跟踪、发货通知等功能,涉及后台订单管理系统。 7. 物流与配送: - 配送地址管理:用户保存和管理多个配送...
4. 支付系统:集成多种支付方式,如信用卡、支付宝、微信支付等,确保支付安全。 5. 订单管理:用户可以查看订单状态,跟踪物流,申请退款或退货。 6. 评价系统:用户购买后可对商品和服务进行评价,促进商家服务...
5. **支付集成**:支持多种支付方式,如支付宝、微信支付、银行卡支付等,提高交易成功率。 6. **配送信息**:提供配送范围、运费政策和预计送达时间,让用户了解订单物流状态。 7. **用户账户管理**:用户可以...
7. **支付接口集成**:为了完成交易,购物网站需要与第三方支付平台如PayPal、支付宝或微信支付等进行接口集成,实现安全的在线支付流程。 8. **商品推荐与搜索**:通过数据分析和机器学习算法,可以实现个性化商品...
8. **支付集成**:平台可能需要集成支付宝、微信支付等常见支付方式,这需要对接相应的支付SDK,处理支付回调和异常情况。 9. **订单追踪**:为了提供良好的服务,系统应能追踪订单状态,从下单到制作、配送全程...
- 结算与支付:集成第三方支付接口,如支付宝、微信支付,确保交易安全。 5. **数据库集成**: - 商品信息、用户数据、订单记录等都需要存储在数据库中,可能使用MySQL、SQLite或PostgreSQL等关系型数据库。 - ...
5. **支付集成**:考虑到购书功能,系统可能需要集成第三方支付网关如支付宝、微信支付或PayPal,实现安全的在线支付。 6. **权限与认证**:用户注册、登录功能需要实现,可能涉及到OAuth2.0、JWT(JSON Web Tokens...
6. **支付集成**:为了处理在线交易,网站可能集成了支付宝、微信支付或PayPal等第三方支付接口,确保交易安全便捷。 7. **用户认证与权限管理**:后台系统可能有完善的用户认证机制,如OAuth2.0,以及角色和权限...
7. **支付集成**:"交易"标签表明源码可能集成了第三方支付接口,如支付宝、微信支付、PayPal等,这涉及到API调用、支付状态同步、安全交易处理等。 8. **订单处理**:从下单到发货,订单系统需管理订单状态(待...
- **支付集成**:为了保证交易顺利,iShopiSell需要集成可靠的支付网关,如支付宝、微信支付或PayPal,确保资金安全。 - **评价系统**:用户可以对交易进行评价,提高平台信誉度,帮助其他用户做出购买决策。 - *...