问题描述:我被支付宝生活号的激活开发者模式困扰好久,有一步“验证应用网关”,报错为“应用网关响应异常”,与官方客服沟通无果。
说明:这一步是需要设置一个回调地址,当在支付宝平台填写保存后,支付宝会发送一个验证消息,让你用本地公钥对消息内容进行验签, 并按要求组成 xml,返回给支付宝,支付宝验证通过,开发者模式被激活。
处理方法:
# 生成签名(key 私钥)
def self.sign_rsa(string)
rsa = OpenSSL::PKey::RSA.new(File.read("lib/certificate/alipay_private_key.pem"))
Base64.strict_encode64(rsa.sign('sha256', string.force_encoding("gbk"))).delete("\n").delete("\r")
end
# 验证签名(key 公钥)
def self.verify?(key, string, sign)
rsa = OpenSSL::PKey::RSA.new(key)
begin
return rsa.verify('sha256', Base64.strict_decode64(sign), string)
rescue => e
Rails.logger.error("verify exception e: " + e.to_s)
return false
end
end
感受:自我验证觉得公私钥都正确,验签也能验证对,地址也能被访问到,返回格式也是按官方 xml 定义返回的,参考 alipay 大家推荐的 gem,并没有解决, 有疑问的地方就是我设置 AES 加密串,但是支付宝客服说接口内容加密已经作废了,用不到 AES,设不设置无所谓。
提问:
1. 现在只想发个帖子问问有人搞定过吗?有没有人搞定过? "有" : "没有"(用 ruby,不是 java、PHP、 .net)
2. 如果有可以借鉴的 gem,或者代码连接提供,小弟不胜感激。