-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathpayment_gateway.go
121 lines (103 loc) · 2.61 KB
/
payment_gateway.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package gomerchant
import "net/http"
// PaymentGateway interface
type PaymentGateway interface {
Authorize(amount uint64, params AuthorizeParams) (AuthorizeResponse, error)
CompleteAuthorize(paymentID string, params CompleteAuthorizeParams) (CompleteAuthorizeResponse, error)
Capture(transactionID string, params CaptureParams) (CaptureResponse, error)
Refund(transactionID string, amount uint, params RefundParams) (RefundResponse, error)
Void(transactionID string, params VoidParams) (VoidResponse, error)
Query(transactionID string) (Transaction, error)
}
// AuthorizeParams authorize params
type AuthorizeParams struct {
Amount uint64
Currency string
Customer string
Description string
OrderID string
BillingAddress *Address
ShippingAddress *Address
PaymentMethod *PaymentMethod
Params
}
// AuthorizeResponse authorize response
type AuthorizeResponse struct {
TransactionID string
HandleRequest bool // need process request after authorize or not
RequestHandler func(http.ResponseWriter, *http.Request, Params) error // process request
Params
}
// CompleteAuthorizeParams complete authorize params
type CompleteAuthorizeParams struct {
Params
}
// CompleteAuthorizeResponse complete authorize response
type CompleteAuthorizeResponse struct {
Params
}
// CaptureParams capture params
type CaptureParams struct {
Params
}
// CaptureResponse capture response
type CaptureResponse struct {
TransactionID string
Params
}
// RefundParams refund params
type RefundParams struct {
Captured bool
Params
}
// RefundResponse refund response
type RefundResponse struct {
TransactionID string
Params
}
// VoidParams void params
type VoidParams struct {
Captured bool
Params
}
// VoidResponse void response
type VoidResponse struct {
TransactionID string
Params
}
type InquiryResponse struct {
TransactionID string
TradingID string
PaymentNoticeID string
PaymentInitDate string
PaymentChangeDate string
PaymentAmount string
BasePaymentID string
PaymentStatus string
SuccessCode string
SuccessDetail string
Params
}
type ApplicationParams struct {
MerchandiseType uint64
PCMobileType uint64
ButtonType string
ReturnUrl string
CancelUrl string
Goods []Good
Params
}
type ApplicationResponse struct {
TransactionID string
OrderCode string
TradeGenerationDate string
RedirectHTML string
Params
}
type Good struct {
ID string
Name string
Price float64
Amount uint64
}
const RAKUTEN_PAY_PRODUCT_ID = "WholeOrderAmount"