From 5b1163311192e9adf15ef3d626c72812e638f90c Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 3 Aug 2020 13:31:26 -0300 Subject: [pos] improve payment processing - cancel orders that have been abandoned and will not be paid - show unpaid orders in history (in case one makes it through) - set deadlines when creating orders in case it helps with enabling refunds --- merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt | 5 ++--- merchant-lib/src/main/java/net/taler/merchantlib/OrderHistory.kt | 3 +++ .../src/main/java/net/taler/merchantlib/PostOrderRequest.kt | 6 ++++-- 3 files changed, 9 insertions(+), 5 deletions(-) (limited to 'merchant-lib/src') diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt b/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt index db37586..96892f5 100644 --- a/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt +++ b/merchant-lib/src/main/java/net/taler/merchantlib/MerchantApi.kt @@ -29,7 +29,6 @@ import io.ktor.http.HttpHeaders.Authorization import io.ktor.http.contentType import kotlinx.serialization.json.Json import kotlinx.serialization.json.JsonConfiguration -import net.taler.common.ContractTerms import net.taler.merchantlib.Response.Companion.response class MerchantApi(private val httpClient: HttpClient) { @@ -40,12 +39,12 @@ class MerchantApi(private val httpClient: HttpClient) { suspend fun postOrder( merchantConfig: MerchantConfig, - contractTerms: ContractTerms + orderRequest: PostOrderRequest ): Response = response { httpClient.post(merchantConfig.urlFor("private/orders")) { header(Authorization, "ApiKey ${merchantConfig.apiKey}") contentType(Json) - body = PostOrderRequest(contractTerms) + body = orderRequest } as PostOrderResponse } diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/OrderHistory.kt b/merchant-lib/src/main/java/net/taler/merchantlib/OrderHistory.kt index 718bde5..b1ff5b1 100644 --- a/merchant-lib/src/main/java/net/taler/merchantlib/OrderHistory.kt +++ b/merchant-lib/src/main/java/net/taler/merchantlib/OrderHistory.kt @@ -41,6 +41,9 @@ data class OrderHistoryEntry( // the summary of the order val summary: String, + // if the order has been paid + val paid: Boolean, + // whether some part of the order is refundable val refundable: Boolean ) diff --git a/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt b/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt index 4854a80..783dd19 100644 --- a/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt +++ b/merchant-lib/src/main/java/net/taler/merchantlib/PostOrderRequest.kt @@ -25,12 +25,14 @@ import kotlinx.serialization.Serializer import kotlinx.serialization.json.JsonInput import kotlinx.serialization.json.JsonObject import net.taler.common.ContractTerms +import net.taler.common.Duration @Serializable data class PostOrderRequest( @SerialName("order") - val contractTerms: ContractTerms - + val contractTerms: ContractTerms, + @SerialName("refund_delay") + val refundDelay: Duration? = null ) @Serializable -- cgit v1.2.3