使用 @jasl 的 gem jasl_tenpay
在本地测试的时候是正常的,能够支付并且成功!但是上线之后就这样了。。。
尝试咨询客服,客服回答说是技术问题,提供一个 QQ 号,当我咨询该 QQ 号的时候就没有什么反应。
有朋友遇过这样的问题吗? 或者,类似的应用从本地测试环境到上线的过程中需要注意什么问题吗?
解决方案:
当初申请的时候是 www.aa.com
的,上线测试了 www.aa.net
。在商户的管理后台那里,添加 www.aa.net
即可。
#3 楼 @Teddy 具体情况是这样的:
当我在页面中单击下一步
按钮,会跳到以下 action 处理
def pay
session[:return_to] = 'http://pay.aaa.net/'
if session[:user_id]
redirect_to params[:pay] == 'alipay' ? alipay : tenpay
else
redirect_to 'http://account.aaa.net/login.jhtml'
end
end
这时候页面跳转后就变成
于是我查看后台,后台生成记录
I, [2014-08-07T17:26:48.222805 #30858] INFO -- : Started POST "/pay" for 218.65.134.34 at 2014-08-07 17:26:48 +0800
I, [2014-08-07T17:26:48.225966 #30858] INFO -- : Processing by Pay::PayController#pay as HTML
I, [2014-08-07T17:26:48.226129 #30858] INFO -- : Parameters: {"utf8"=>"✓", "authenticity_token"=>"oiuUYA49DNSYpXFuoXg3cv5Acryc4u70Ik0Ivvmabto=", "price"=>{"price"=>"699"}, "vip"=>{"vip"=>"全年VIP"}, "pay"=>"tenpay", "commit"=>"下一步", "subdomain"=>"pay"}
I, [2014-08-07T17:26:48.247716 #30858] INFO -- : Redirected to https://gw.tenpay.com/gateway/pay.htm?input_charset=UTF-8&partner=1212350101&fee_type=1&out_trade_no=11963651&subject=%E5%85%A8%E5%B9%B4VIP&body=%E5%85%A8%E5%B9%B4VIP&total_fee=69900&spbill_create_ip=218.65.134.34&return_url=http%3A%2F%2Fpay.aaa.net%2Fdone%3Fuid%3D1¬ify_url=http%3A%2F%2Fpay.aaa.net%2Ftennotify&sign=7753F61E2DA618E6920197CE7A2ECE7A
I, [2014-08-07T17:26:48.248009 #30858] INFO -- : Completed 302 Found in 22ms (ActiveRecord: 5.7ms)
我直接点击生成的 URL 就可以进入正常的支付流程。
这种情况是白名单所致吗?
我这边是这样写的,照着 gem 的例子生成的 url,直接 redirect 是可以的
url = generate_tenpay_url :order_id => @donation_order.id,
:subject => "捐款",
:body => "我要捐款",
:total_fee => fee.to_i,
:out_trade_no => @donation_order.trade_no
return redirect_to url
https://github.com/jasl/tenpay_demo 这里有例子,我这样用的话是没有问题的,线上系统检验一年了
如果有问题的话,可能是财付通的设置方面