activemerchant_patch_for_china 0.1.4 → 0.1.5
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.
data/README.textile
CHANGED
@@ -47,136 +47,11 @@ require 'active_merchant/billing/integrations/action_view_helper'
|
|
47
47
|
ActionView::Base.send(:include, ActiveMerchant::Billing::Integrations::ActionViewHelper)
|
48
48
|
</code></pre>
|
49
49
|
|
50
|
-
then define your api key, account and email
|
51
|
-
|
52
|
-
<pre><code>
|
53
|
-
ActiveMerchant::Billing::Integrations::Alipay::KEY
|
54
|
-
ActiveMerchant::Billing::Integrations::Alipay::ACCOUNT
|
55
|
-
ActiveMerchant::Billing::Integrations::Alipay::EMAIL
|
56
|
-
</code></pre>
|
57
|
-
|
58
50
|
**************************************************************************
|
59
51
|
|
60
52
|
h2. Usage
|
61
53
|
|
62
|
-
|
63
|
-
|
64
|
-
Request Form:
|
65
|
-
|
66
|
-
<pre><code>
|
67
|
-
<% payment_service_for 'payment code', ActiveMerchant::Billing::Integrations::Alipay::ACCOUNT,
|
68
|
-
:service => :alipay,
|
69
|
-
:html => { :id => 'payment-form', :method => :get } do |service| %>
|
70
|
-
<% service.total_fee 0.02 %>
|
71
|
-
<%# service.price 0.01 %>
|
72
|
-
<%# service.quantity 2 %>
|
73
|
-
<% service.seller :email => ActiveMerchant::Billing::Integrations::Alipay::EMAIL %>
|
74
|
-
<% service.notify_url url_for(:only_path => false, :action => 'notify') %>
|
75
|
-
<% service.return_url url_for(:only_path => false, :action => 'done') %>
|
76
|
-
<% service.show_url url_for(:only_path => false, :action => 'show') %>
|
77
|
-
<% service.body 'payment body' %>
|
78
|
-
<% service.charset "utf-8" %>
|
79
|
-
<% service.service "create_direct_pay_by_user" %>
|
80
|
-
<% service.payment_type 1 %>
|
81
|
-
<% service.subject 'payment subject' %>
|
82
|
-
<% service.sign %>
|
83
|
-
<% end %>
|
84
|
-
<%= button_to_function "Submit", "document.getElementById('payment-form').submit();" %>
|
85
|
-
</code></pre>
|
86
|
-
|
87
|
-
*payment code is the out_trade_no, it must be unique.*
|
88
|
-
amount is the total_fee.
|
89
|
-
payment body is the body of the payment.
|
90
|
-
payment subject is the subject of the payment.
|
91
|
-
|
92
|
-
|
93
|
-
Notify action:
|
94
|
-
|
95
|
-
<pre><code>
|
96
|
-
notification = ActiveMerchant::Billing::Integrations::Alipay::Notification.new(request.raw_post)
|
97
|
-
|
98
|
-
txn = AlipayTxn.create(:notify_id => notification.notify_id,
|
99
|
-
:total_fee => notification.total_fee,
|
100
|
-
:status => notification.trade_status,
|
101
|
-
:trade_no => notification.trade_no,
|
102
|
-
:received_at => notification.notify_time)
|
103
|
-
|
104
|
-
if notification.complete?
|
105
|
-
txn.pay!
|
106
|
-
else
|
107
|
-
txn.pending!
|
108
|
-
end
|
109
|
-
</code></pre>
|
110
|
-
|
111
|
-
Return action:
|
112
|
-
|
113
|
-
<pre><code>
|
114
|
-
def done
|
115
|
-
r = ActiveMerchant::Billing::Integrations::Alipay::Return.new(request.query_string)
|
116
|
-
unless @result = r.success?
|
117
|
-
logger.warn(r.message)
|
118
|
-
end
|
119
|
-
end
|
120
|
-
</code></pre>
|
121
|
-
|
122
|
-
**************************************************************************
|
123
|
-
|
124
|
-
h2. Interface
|
125
|
-
|
126
|
-
*Alipay*
|
127
|
-
|
128
|
-
for helper
|
129
|
-
|
130
|
-
<pre><code>
|
131
|
-
mapping :account, 'partner'
|
132
|
-
mapping :total_fee, 'total_fee'
|
133
|
-
mapping :price, 'price'
|
134
|
-
mapping :quantity, 'quantity'
|
135
|
-
mapping :order, 'out_trade_no'
|
136
|
-
mapping :seller, :email => 'seller_email',
|
137
|
-
:id => 'seller_id'
|
138
|
-
mapping :buyer, :email => 'buyer_email',
|
139
|
-
:id => 'buyer_id'
|
140
|
-
mapping :notify_url, 'notify_url'
|
141
|
-
mapping :return_url, 'return_url'
|
142
|
-
mapping :show_url, 'show_url'
|
143
|
-
mapping :body, 'body'
|
144
|
-
mapping :subject, 'subject'
|
145
|
-
mapping :charset, '_input_charset'
|
146
|
-
mapping :service, 'service'
|
147
|
-
mapping :payment_type, 'payment_type'
|
148
|
-
mapping :paymethod, 'paymethod'
|
149
|
-
mapping :defaultbank, 'defaultbank'
|
150
|
-
mapping :royalty_type, 'royalty_type'
|
151
|
-
mapping :royalty_parameters, 'royalty_parameters'
|
152
|
-
mapping :it_b_pay, 'it_b_pay'
|
153
|
-
</code></pre>
|
154
|
-
|
155
|
-
for notification
|
156
|
-
|
157
|
-
<pre><code>
|
158
|
-
notify_type
|
159
|
-
notify_id
|
160
|
-
notify_time
|
161
|
-
out_trade_no
|
162
|
-
trade_no
|
163
|
-
payment_type
|
164
|
-
subject
|
165
|
-
body
|
166
|
-
price
|
167
|
-
quantity
|
168
|
-
total_fee
|
169
|
-
trade_status
|
170
|
-
refund_status
|
171
|
-
seller_email
|
172
|
-
seller_id
|
173
|
-
buyer_email
|
174
|
-
buyer_id
|
175
|
-
gmt_create
|
176
|
-
gmt_payment
|
177
|
-
gmt_close
|
178
|
-
gmt_refund
|
179
|
-
</code></pre>
|
54
|
+
"Alipay (支付宝)":http://wiki.github.com/flyerhzm/activemerchant_patch_for_china/alipay
|
180
55
|
|
181
56
|
**************************************************************************
|
182
57
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.5
|
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{activemerchant_patch_for_china}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.5"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Richard Huang"]
|
12
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-12-16}
|
13
13
|
s.description = %q{A rails plugin to add an active_merchant patch for china online payment platform}
|
14
14
|
s.email = %q{flyerhzm@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -39,17 +39,17 @@ module ActiveMerchant #:nodoc:
|
|
39
39
|
mapping :it_b_pay, 'it_b_pay'
|
40
40
|
|
41
41
|
#################################################
|
42
|
-
# create partner trade by buyer
|
42
|
+
# create partner trade by buyer and trade create by user
|
43
43
|
#################################################
|
44
44
|
mapping :price, 'price'
|
45
45
|
mapping :quantity, 'quantity'
|
46
46
|
mapping :discount, 'discount'
|
47
47
|
['', '_1', '_2', '_3'].each do |postfix|
|
48
|
-
|
48
|
+
self.class_eval <<-EOF
|
49
49
|
mapping :logistics#{postfix}, :type => 'logistics_type#{postfix}',
|
50
50
|
:fee => 'logistics_fee#{postfix}',
|
51
51
|
:payment => 'logistics_payment#{postfix}'
|
52
|
-
|
52
|
+
EOF
|
53
53
|
end
|
54
54
|
mapping :receive, :name => 'receive_name',
|
55
55
|
:address => 'receive_address',
|
@@ -9,104 +9,62 @@ module ActiveMerchant #:nodoc:
|
|
9
9
|
include Sign
|
10
10
|
|
11
11
|
def complete?
|
12
|
-
|
13
|
-
return false
|
14
|
-
end
|
15
|
-
|
16
|
-
unless verify_sign
|
17
|
-
@message = "Alipay Error: ILLEGAL_SIGN"
|
18
|
-
return false
|
19
|
-
end
|
20
|
-
|
21
|
-
true
|
22
|
-
end
|
23
|
-
|
24
|
-
def message
|
25
|
-
@message
|
26
|
-
end
|
27
|
-
|
28
|
-
def notify_type
|
29
|
-
params['notify_type']
|
30
|
-
end
|
31
|
-
|
32
|
-
def notify_id
|
33
|
-
params['notify_id']
|
34
|
-
end
|
35
|
-
|
36
|
-
def notify_time
|
37
|
-
Time.parse params['notify_time']
|
38
|
-
end
|
39
|
-
|
40
|
-
def out_trade_no
|
41
|
-
params['out_trade_no']
|
42
|
-
end
|
43
|
-
|
44
|
-
def trade_no
|
45
|
-
params['trade_no']
|
12
|
+
trade_status == "TRADE_FINISHED"
|
46
13
|
end
|
47
14
|
|
48
|
-
def
|
49
|
-
|
15
|
+
def pending?
|
16
|
+
trade_status == 'WAIT_BUYER_PAY'
|
50
17
|
end
|
51
18
|
|
52
|
-
def
|
53
|
-
|
54
|
-
end
|
55
|
-
|
56
|
-
def body
|
57
|
-
params['body']
|
19
|
+
def status
|
20
|
+
trade_status
|
58
21
|
end
|
59
22
|
|
60
|
-
def
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
def quantity
|
65
|
-
params['quantity']
|
66
|
-
end
|
67
|
-
|
68
|
-
def total_fee
|
69
|
-
params["total_fee"]
|
23
|
+
def acknowledge
|
24
|
+
raise StandardError.new("Faulty alipay result: ILLEGAL_SIGN") unless verify_sign
|
25
|
+
true
|
70
26
|
end
|
71
27
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
28
|
+
['notify_type', 'notify_id', 'out_trade_no', 'trade_no', 'payment_type', 'subject', 'body',
|
29
|
+
'seller_email', 'seller_id', 'buyer_email', 'buyer_id', 'logistics_type', 'logistics_payment',
|
30
|
+
'receive_name', 'receive_address', 'receive_zip', 'receive_phone', 'receive_mobile'].each do |param|
|
31
|
+
self.class_eval <<-EOF
|
32
|
+
def #{param}
|
33
|
+
params['#{param}']
|
34
|
+
end
|
35
|
+
EOF
|
78
36
|
end
|
79
37
|
|
80
|
-
|
81
|
-
|
38
|
+
['price', 'discount', 'quantity', 'total_fee', 'coupon_discount', 'logistics_fee'].each do |param|
|
39
|
+
self.class_eval <<-EOF
|
40
|
+
def #{param}
|
41
|
+
params['#{param}']
|
42
|
+
end
|
43
|
+
EOF
|
82
44
|
end
|
83
45
|
|
84
|
-
|
85
|
-
|
46
|
+
['trade_status', 'refund_status', 'logistics_status'].each do |param|
|
47
|
+
self.class_eval <<-EOF
|
48
|
+
def #{param}
|
49
|
+
params['#{param}']
|
50
|
+
end
|
51
|
+
EOF
|
86
52
|
end
|
87
53
|
|
88
|
-
|
89
|
-
|
54
|
+
['notify_time', 'gmt_create', 'gmt_payment', 'gmt_close', 'gmt_refund', 'gmt_send_goods', 'gmt_logistics_modify'].each do |param|
|
55
|
+
self.class_eval <<-EOF
|
56
|
+
def #{param}
|
57
|
+
Time.parse params['#{param}']
|
58
|
+
end
|
59
|
+
EOF
|
90
60
|
end
|
91
61
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
end
|
99
|
-
|
100
|
-
def gmt_payment
|
101
|
-
Time.parse params['gmt_payment']
|
102
|
-
end
|
103
|
-
|
104
|
-
def gmt_close
|
105
|
-
Time.parse params['gmt_close']
|
106
|
-
end
|
107
|
-
|
108
|
-
def gmt_refund
|
109
|
-
Time.parse params['gmt_reund']
|
62
|
+
['use_coupon', 'is_total_fee_adjust'].each do |param|
|
63
|
+
self.class_eval <<-EOF
|
64
|
+
def #{param}?
|
65
|
+
'T' == params['#{param}']
|
66
|
+
end
|
67
|
+
EOF
|
110
68
|
end
|
111
69
|
|
112
70
|
private
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activemerchant_patch_for_china
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Huang
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-12-16 00:00:00 +08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|