HG-64: Expand proxy context + discard terminal descriptors (#78)

* HG-64: Expand proxy context + favor options instead of terminal descriptors

* HG-64: Add a TODO bullet

* HG-64: Fix compilation issue
This commit is contained in:
Andrew Mayorov 2016-10-20 13:47:12 +03:00 committed by GitHub
parent 7a56dfce89
commit b059a28dc1
3 changed files with 54 additions and 18 deletions

15
TODO.md
View File

@ -1,8 +1,17 @@
# Payments
* Way to specify terminals (terminal descriptor) for a specific merchant
* What to do with terminal descriptors?
They seemed out of place, therefore been removed for the moment. We need to encompass too much in a single abstraction, looks like we need dynamic schemas for this kind of thing.
* Way to specify terminal attributes (more generally, attributes of technical interaction) for a specific merchant.
* Some proxies need to know provider profit / compensation.
Expose cash flow?
# Proxies
* Billing address, for foreign customers (payment session?)
* Provide shop in a payment context
* In order to acquire foreign customers we need to store a _billing address_.
Maybe a good fit for a payment session?

View File

@ -255,7 +255,7 @@ struct Contractor {
}
/** Форма юридического лица. */
union LegalEntity {
struct LegalEntity {
}
@ -267,10 +267,16 @@ struct BankAccount {
struct CategoryRef { 1: required ObjectID id }
enum CategoryType {
test
live
}
/** Категория продаваемых товаров или услуг. */
struct Category {
1: required string name
2: required string description = ""
2: required string description
3: optional CategoryType type = CategoryType.test
}
/* Currencies */
@ -480,7 +486,8 @@ struct Terminal {
4: required CategoryRef category
6: required CashFlow cash_flow
7: required TerminalAccountSet accounts
8: optional TerminalDescriptor descriptor
// TODO
// 8: optional TerminalDescriptor descriptor
9: optional ProxyOptions options = {}
}
@ -500,16 +507,6 @@ struct TerminalPredicate {
2: required TerminalSelector then_
}
union TerminalDescriptor {
1: AcquiringTerminalDescriptor acquiring
}
struct AcquiringTerminalDescriptor {
1: required string terminal_id
2: required string merchant_id
3: required string mcc
}
/* Predicates / conditions */
union Predicate {

View File

@ -3,6 +3,7 @@ include "proxy.thrift"
include "domain.thrift"
namespace java com.rbkmoney.damsel.proxy_provider
namespace erlang prxprv
typedef base.Opaque Callback
typedef base.Opaque CallbackResponse
@ -11,8 +12,37 @@ typedef base.Opaque CallbackResponse
* Данные платежа, необходимые для обращения к провайдеру.
*/
struct PaymentInfo {
1: required domain.Invoice invoice
2: required domain.InvoicePayment payment
1: required Shop shop
2: required Invoice invoice
3: required InvoicePayment payment
}
struct Shop {
1: required domain.ShopID id
2: required domain.Category category
3: required domain.ShopDetails details
}
struct Invoice {
1: required domain.InvoiceID id
2: required base.Timestamp created_at
3: required base.Timestamp due
4: required string product
5: optional string description
6: required Cash cost
}
struct InvoicePayment {
1: required domain.InvoicePaymentID id
2: required base.Timestamp created_at
3: optional domain.TransactionInfo trx
4: required domain.Payer payer
5: required Cash cost
}
struct Cash {
1: required domain.Amount amount
2: required domain.Currency currency
}
/**