Rwepay 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d80a5249da144ab650e93c819511ea5817963da3
4
- data.tar.gz: 34f53b8d5edf4fe3caec6f0a735cdf4f606f40c1
3
+ metadata.gz: 49e4e8cb023849d3810dfba5b934657c85cff91d
4
+ data.tar.gz: 2e14533e3e8bbd4132f5ceb8964f7b52debd3554
5
5
  SHA512:
6
- metadata.gz: b2b659edbab1a79c1e83069db059a85fb65d9a864aada7aadf37e33305dfdd06379cf37804474581ee34c0aca68157be459031525babd40731546f5d85646f4a
7
- data.tar.gz: ba3a5103417e85a2f9b8e5ecf4ad80ef9b6db342614b757e462e0e3f57ba1410216204df335654538112f2c0df9fa2a1c4b02b89e953f0f17f5ed68f16ae87c7
6
+ metadata.gz: 5097f0304fe3bc6098d9f825200019c79ffc3a0a4d5b976297bf50bcfe7a4105ec2cc54e85227f99f609a7ee3a0e74b9feb6296d352bb5b6d5cf74d0628edbf2
7
+ data.tar.gz: bb03f24be90298718ce377e079b9bd1dc30df575c00a2889e30f5682b1117374dc89c89f5082cf48bb8b6a950ecaaa24a9c65cccc7aeef951974c3efc80d8ae6
data/README.md CHANGED
@@ -32,16 +32,93 @@ Or install it yourself as:
32
32
 
33
33
  ### JSPayment
34
34
 
35
+ - 初始化 [new]
36
+
37
+ configs = {
38
+ :app_id => 'wxf8b4f85f3a794e77',
39
+ :partner_id => '1900000109',
40
+ :app_key => 'xxxx',
41
+ :partner_key => '8934e7d15453e97507ef794cf7b0519d'
42
+ }
43
+ payment = Rwepay::JSPayment.new configs
44
+
35
45
  - 创建支付请求 [get_brand_request]
46
+ options参数用于构建package,示例中写了必填参数,可选参数也可使用hash方式传入,参见文档。
47
+
48
+ In Controller:
49
+
50
+ options = {
51
+ :body => '测试商品',
52
+ :notify_url => 'http://domain.com/to/path',
53
+ :out_trade_no => 'TEST123456',
54
+ :total_fee => '1',
55
+ :spbill_create_ip => '127.0.0.1',
56
+ }
57
+ @brand_json = js_payment.get_brand_request(options)
58
+
59
+ In View:
60
+
61
+ <%= link_to '微信支付', "javascript:void(0)", :id => 'wechat' %>
62
+ <script Language="javascript">
63
+ document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
64
+ $('#wechat').click(function(){
65
+ WeixinJSBridge.invoke('getBrandWCPayRequest', <%= raw @brand_json %>,function(res){
66
+ if(res.err_msg == "get_brand_wcpay_request:ok" ) {
67
+ alert('支付成功!');
68
+ }else{
69
+ alert(res.err_msg);
70
+ }
71
+ });
72
+ });
73
+ }, false);
74
+ </script>
36
75
 
37
76
  - 回调验证 [notify_verify?]
38
77
 
78
+ status = payment.notify_verify?(params)
79
+ if status
80
+ #这里请自行验证params[:total_fee]的值与订单是否相符,按需要存储其他内容特别是transaction_id
81
+ render :text => 'success'
82
+ else
83
+ render :text => 'fail'
84
+ end
85
+
39
86
  - 发货通知 [deliver_notify]
40
87
 
88
+ 此接口调用需传入开放平台的access_token,由于access_token有时限且有请求限制,需要自行获取并按7200秒缓存,可使用下方的get_access_token方法
89
+
90
+ options = {
91
+ :access_token => access_token,
92
+ :open_id => 'oVGDVjni9uU30O9TGrlIWp-BcuYw',
93
+ :trans_id => '1217737101201403308373364651',
94
+ :out_trade_no => '1246154588',
95
+ :deliver_timestamp => Time.now.to_i.to_s,
96
+ :deliver_status => '1',
97
+ :deliver_msg => 'ok'
98
+ }
99
+ status, error = js_payment.deliver_notify(options)
100
+
41
101
  - 获取订单状态 [get_order_query]
42
102
 
103
+ options = {
104
+ :access_token => access_token,
105
+ :out_trade_no => '1246154588'
106
+ }
107
+ status, response = js_payment.get_order_query(options)
108
+
43
109
  - 获取access_token [get_access_token]
44
110
 
111
+ access_token = js_payment.get_access_token('your app_secret hear')
112
+
113
+ - 更新维权信息 [update_feedback]
114
+
115
+ options = {
116
+ :access_token => access_token,
117
+ :open_id => open_id,
118
+ :feedback_id => feedback_id
119
+ }
120
+ js_payment.update_feedback(options)
121
+
45
122
  ### NativePayment
46
123
 
47
124
  TODO
@@ -52,4 +129,4 @@ Or install it yourself as:
52
129
  2. Create your feature branch (`git checkout -b my-new-feature`)
53
130
  3. Commit your changes (`git commit -am 'Add some feature'`)
54
131
  4. Push to the branch (`git push origin my-new-feature`)
55
- 5. Create new Pull Request
132
+ 5. Create new Pull Request
data/lib/Rwepay.rb CHANGED
@@ -83,6 +83,22 @@ module Rwepay
83
83
  end
84
84
  end
85
85
 
86
+ def update_feedback(options = {})
87
+ options = Rwepay::Common.configs_check options,
88
+ [:access_token, :open_id, :feedback_id]
89
+ begin
90
+ response = Faraday.get("https://api.weixin.qq.com/payfeedback/update?access_token=#{options[:access_token]}&openid=#{options[:open_id]}&feedbackid=#{options[:feedback_id]}")
91
+ response = JSON.parse response.body
92
+ if response['errcode'] == 0
93
+ true
94
+ else
95
+ false
96
+ end
97
+ rescue
98
+ false
99
+ end
100
+ end
101
+
86
102
  end
87
103
 
88
104
  # @TODO
data/lib/Rwepay/common.rb CHANGED
@@ -143,7 +143,7 @@ module Rwepay::Common
143
143
  begin
144
144
  conn = Faraday.new(:url => "https://api.weixin.qq.com/pay/delivernotify?access_token=#{access_token}")
145
145
  response = conn.post do |req|
146
- req.body = for_sign_data.to_json
146
+ req.body = for_sign_data.to_json.gsub(/\\u([0-9a-z]{4})/) {|s| [$1.to_i(16)].pack("U")}
147
147
  end
148
148
  response = JSON.parse response.body
149
149
  if response['errcode'] == 0
@@ -183,7 +183,7 @@ module Rwepay::Common
183
183
  begin
184
184
  conn = Faraday.new(:url => "https://api.weixin.qq.com/pay/orderquery?access_token=#{access_token}")
185
185
  response = conn.post do |req|
186
- req.body = for_sign_data.to_json
186
+ req.body = for_sign_data.to_json.gsub(/\\u([0-9a-z]{4})/) {|s| [$1.to_i(16)].pack("U")}
187
187
  end
188
188
  response = JSON.parse response.body
189
189
  if response['errcode'] == 0
@@ -1,3 +1,3 @@
1
1
  module Rwepay
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Rwepay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - RaymondChou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-29 00:00:00.000000000 Z
11
+ date: 2014-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler