https://github.com/goofansu/wechat-starter
一个微信公众号开发模版,简单实现了以下主要功能:
有同学在使用过程中遇到一些奇怪的问题,提了几个 issue,正好这两天有空,就把坑填了,顺便配置了一下"Deploy to Heroku"。
简单说来,就是点击 README 的紫色按钮,填入微信公众号相关参数,点 Deploy 就 OK 了,整个过程 5-10 分钟足够了。
前段时间把 wechat gem 的作者@ericguo拉进来了,帮忙改进了很多,在此非常感谢。
希望 wechat-starter 能给正准备开发微信公众号的朋友一点参考,也可以直接当模版使用。
// file: wxpay.js.erb
wx.ready(function() {
wx.chooseWXPay({
timestamp: "<%= @pay_order[:timeStamp] %>",
nonceStr: "<%= @pay_order[:nonceStr] %>",
package: "<%= @pay_order[:package] %>",
signType: "<%= @pay_order[:signType] %>",
paySign: "<%= @pay_order[:paySign] %>",
success: function(res) {
window.location.href = '<%= buy_orders_url %>';
},
error: function(e) {
alert(e)
}
});
});
微信官方推荐新 api chooseWXPay
@goofansu 请教一下,使用测试号 deploy to Heroku 成功了,但是不知道该怎么测试,扫描二维码加了微信,发了一个 TEXT,没有回应。看了一下代码,应该至少有 echo 才对。
class WechatsController < ActionController::Base
# to allow using wechat message DSL and web page helper
wechat_responder
# default text responder when no other match
on :text do |request, content|
request.reply.text "echo: #{content}" # Just echo
end
# When receive 'help', will trigger this responder
on :text, with: 'help' do |request|
request.reply.text 'help content'
end
@goofansu 你好,我在本地的开发环境用 ngrok 映射到公网,微信公众平台配置接口信息的时候,无法通过。url 是 http://????.ngork.cc/wechat token 也一致,无法成功配置。我用浏览器访问 http://????.ngork.cc/wechat,显示 Forbidden。 console 的信息
vagrant@vagrant-ubuntu-trusty-64:/vagrant/weixin$ rails s -b 192.168.10.10
=> Booting Puma
=> Rails 5.0.1 application starting in development on http://192.168.10.10:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.2 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://192.168.10.10:3000
Use Ctrl-C to stop
Started GET "/wechat" for 192.168.10.1 at 2017-02-12 18:28:31 +0000
ActiveRecord::SchemaMigration Load (0.4ms) SELECT "schema_migrations".* FROM "schema_migrations"
Processing by WechatsController#show as HTML
Rendering text template
Rendered text template (0.0ms)
Filter chain halted as :verify_signature rendered or redirected
Completed 403 Forbidden in 32ms (Views: 15.6ms | ActiveRecord: 0.0ms)
Started GET "/wechat?signature=7f19626f401dcad1c53f214244d6fbd4752b5cc6&echostr=2528414796461682171×tamp=1486924145&nonce=1748360740" for 192.168.10.1 at 2017-02-12 18:29:06 +0000
Processing by WechatsController#show as */*
Parameters: {"signature"=>"7f19626f401dcad1c53f214244d6fbd4752b5cc6", "echostr"=>"2528414796461682171", "timestamp"=>"1486924145", "nonce"=>"1748360740"}
Rendering text template
Rendered text template (0.0ms)
Completed 200 OK in 2ms (Views: 1.7ms | ActiveRecord: 0.0ms)
如何通过微信的接口认证,谢谢了!
正如 @kouunn 说的,单独用 Puma 会有问题。问题在于 response.body 会多一个状态码(例如 4230923142354162015HTTP/1.1 500 Internal Server Error)。 可以用其他 server gem 调试
正如 @kouunn 说的,单独用 Puma 会有问题。问题在于 response.body 会多一个状态码(例如 4230923142354162015HTTP/1.1 500 Internal Server Error)。可以用其他 server gem 调试