mini_program

所属分类:微信小程序
开发工具:Ruby
文件大小:0KB
下载次数:0
上传日期:2023-09-26 08:44:41
上 传 者sh-1993
说明:  微信小程序 Engine,
(WeChat applet Engine,)

文件列表:
Gemfile (271, 2023-09-26)
Gemfile.lock (3755, 2023-09-26)
MIT-LICENSE (1043, 2023-09-26)
Rakefile (342, 2023-09-26)
app/ (0, 2023-09-26)
app/assets/ (0, 2023-09-26)
app/assets/config/ (0, 2023-09-26)
app/assets/config/mini_program_manifest.js (52, 2023-09-26)
app/assets/images/ (0, 2023-09-26)
app/assets/images/mini_program/ (0, 2023-09-26)
app/assets/images/mini_program/.keep (0, 2023-09-26)
app/assets/stylesheets/ (0, 2023-09-26)
app/assets/stylesheets/mini_program/ (0, 2023-09-26)
app/assets/stylesheets/mini_program/application.css (736, 2023-09-26)
app/assets/stylesheets/mini_program/wechat.css (128, 2023-09-26)
app/controllers/ (0, 2023-09-26)
app/controllers/mini_program/ (0, 2023-09-26)
app/controllers/mini_program/application_controller.rb (162, 2023-09-26)
app/controllers/mini_program/wechat_controller.rb (1298, 2023-09-26)
app/helpers/ (0, 2023-09-26)
app/helpers/mini_program/ (0, 2023-09-26)
app/helpers/mini_program/application_helper.rb (56, 2023-09-26)
app/helpers/mini_program/wechat_helper.rb (51, 2023-09-26)
app/jobs/ (0, 2023-09-26)
app/jobs/mini_program/ (0, 2023-09-26)
app/jobs/mini_program/application_job.rb (70, 2023-09-26)
app/mailers/ (0, 2023-09-26)
app/mailers/mini_program/ (0, 2023-09-26)
app/mailers/mini_program/application_mailer.rb (133, 2023-09-26)
app/models/ (0, 2023-09-26)
app/models/mini_program/ (0, 2023-09-26)
app/models/mini_program/application_record.rb (107, 2023-09-26)
app/views/ (0, 2023-09-26)
app/views/layouts/ (0, 2023-09-26)
app/views/layouts/mini_program/ (0, 2023-09-26)
app/views/layouts/mini_program/application.html.erb (226, 2023-09-26)
app/views/mini_program/ (0, 2023-09-26)
app/views/mini_program/wechat/ (0, 2023-09-26)
... ...

# MiniProgram Short description and motivation. ## 开始 1. 添加`gem` ```ruby gem 'mini_program' ``` 2. 执行 bundle ```bash $ bundle ``` 3. 生成`initializer`文件,需要將里边的内容修改成你自己的小程序的配置 ```bash $ rails g mini_program:install ``` 4. 如果需要订阅消息,使用如下命令生成订阅消息的配置 ```bash $ rails g mini_program:msg_config ``` ## 使用 #### 授权登录(获取openid) ```ruby mp = MiniProgram::Client.new # code 是在小程序端调用 wx.login 拿到的 result = mp.login(code) if result.success? openid = result.data[:openid] session_key = result.data[:session_key] end ``` #### 获取手机号 ```ruby mp = MiniProgram::Client.new # 小程序端 wx.login 拿到的 code code = "041PuvGa1rysrB0noDJa1n7RBv2PuvGe" # encrypted_data 和 iv 都是小程序端 getPhoneNum 获取到的参数 encrypted_data = "3G/+Fh6kCBaQszXFTxz3h3HFSbu0UuVW/4aLbz8WGzrKfmbGpvnxYHAa4QrKXJvHpB++3ogOYoU6iiG+1HW18Lkt9qEJE9GyRw5OnuXSjTnUIPSRROT3sxeAYnT1kf4ngTAfrD3f4TFtLXkRIrrc1MzSqx/LV8iXA8Lu5Y+7kZx26eulz3yVrlXDH3BOIX6zcGOeprsK5XzDx2ltmf3j5w==" iv = "5tiyfVEHNVgHN4n8lzDrUA==" result = mp.decrypt_phone_num(code: code, encrypted_data: encrypted_data, iv: iv) if result.success? phone_num = result.data[:phone] # 或者直接使用 [] 方法获取 # phone_num = result[:phone_num] end ``` #### 发送订阅消息 ```ruby # 订阅消息配置 ,具体模板配置请参考小程序后台模板配置 # # config/subscribe_msg.yml # # progress: # template_id: YQ0cmL_ugsXwPaA2Pl75IMo_qtoc1n6CtT1orIeX4_o # page: "/pages/index/index" # data: # thing2: # value: "%{title}" # phrase4: # value: "%{state}" # thing1: # value: "%{detail}" msg = MiniProgram::Msg.new(:progress, { title: "测试", state: "已完成", detail: "测试已完成" }) # send_to 的参数可以是 openid(字符串),或者是带有 openid 方法的对象,返回 MiniProgram::ServiceResult result = msg.send_to("ogT7J5YddGnll-ippRvJq62Nv5W0") # or user = User.first user.openid # => ogT7J5YddGnll-ippRvJq62Nv5W0 result = msg.send_to(user) if result.success? puts "发送成功" end ``` #### 获取`access-token` ```ruby mp = MiniProgram::Client.new # 缓存在 redis 中,缓存时间为 1.5 小时,微信官方`access-token`过期时间是 2小时 result = mp.get_access_token if result.success? access_token = result[:access_token] end # 传入 fresh: true 可以不使用缓存,直接调用微信api获取到 token,默认为 false result = mp.access_token fresh:true ``` #### MiniProgram::ServiceResult 类 ```ruby # success 默认为 false result = MiniProgram::ServiceResult.new(success: true, data: {data1: 1}) ## 处理结果(成功) if result.success? # do something... end # or result.on_success do |result| # do something... end ## 处理结果(失败) if result.failure? # do something... end result.on_failure do |result| # do something... end ``` ## Contributing Contribution directions go here. ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).

近期下载者

相关文件


收藏者