The present invention relates to a remittance instruction apparatus, a remittance instruction method, a remittance instruction program, and a remittance instruction system, and more particularly to a remittance instruction apparatus, a remittance instruction method, a remittance instruction program, and a remittance instruction system that give remittance instructions for digital currency.
With networked payment systems of today, remittances in digital currencies, which are electronic representations of currencies, have become popular, instead of physical currencies such as coins, banknotes, and checks. At present, credit cards and bank transfers are popular for payments on the network. Alternatively, payment by electronic money is also widespread in payments at physical stores. For example, Patent Literature 1 discloses a payment system using two-dimensional codes. Hereinafter, the expression “store” is used, but this is not necessarily a store that sells products. This expression is used to represent the recipient of the remittance, such as an individual, a service provider, or a mere remittance destination account.
On the other hand, in recent years, attention has been focused on virtual currencies (also called “cryptocurrency”). Although virtual currency was developed to make remittances easier, it may be difficult to identify the sender because there was focus on the anonymity of remittances. To solve this problem, e-commerce stores can contract with individual cryptocurrency exchange companies and use their remittance services.
Patent Literature 1: Japanese Patent No. 6271800
However, if a store wants to do business with more customers, it must partner with multiple payment companies. But it is not feasible for small stores and individuals to partner with multiple payment companies due to procedures and costs. For example, for payment with virtual currency, if the store does not partner with a payment company (virtual currency exchange company), the store will need to convey the remittance destination address to each customer and ask each customer to manually send the payment with the exchange company used by the customer each time. Thus, convenience of the customer is impaired. Therefore, introduction of a service that comprehensively handles payments from a plurality of exchange companies with the aim of ensuring customer convenience is desired.
This disclosure is made to solve such problem, and the purpose is to provide a remittance instruction apparatus, a remittance instruction method, a remittance instruction program, and a remittance instruction system for comprehensively handling payments from a plurality of payment companies for the convenience of customers.
The remittance instruction apparatus according to the first aspect of the present disclosure includes:
a key information storage unit configured to store each of a plurality of key information for a given user to use each remittance execution service in association with each of each of a plurality of remittance execution services for providing services to a plurality of registered users services for remittance of digital currency;
an identification unit configured to identify the key information in the key information storage unit based on the predetermined remittance execution service designated by the given user; and
a remittance instruction unit configured to, based on remittance information in which a remittance amount in a predetermined digital currency and a remittance destination are specified, give a remittance instruction to the predetermined remittance execution service, the remittance instruction to remit the remittance amount in the specified digital currency to a remittance destination address corresponding to the specified remittance destination using the identified key information,
wherein, each of the plurality of key information includes one or more keys that differ for each remittance execution service and includes information that can uniquely identify the given user in the remittance execution service.
According to the present disclosure, it is possible to provide a remittance instruction apparatus, a remittance instruction method, a remittance instruction program, and a remittance instruction system that comprehensively handle payments from a plurality of payment companies for the convenience of customers.
Hereinafter, specific embodiments to which the present invention is applied will be described in detail with reference to the drawings. In each drawing, the same elements are designated by the same reference numerals, and duplicate description will be omitted as necessary for the sake of clarity. The money to be remitted in this embodiment is digital currency that represents currency electronically. Examples of digital currencies include virtual currencies and electronic money, but it does not matter whether or not cashing with legal tender is guaranteed. Further, the digital currency may be a legal tender in which coins or banknotes do not exist, or it may be a legal currency that can be exchanged for coins or banknotes. Further, https (Hypertext Transfer Protocol Secure) in the following description is only an example of encrypted communication, and other encrypted communication technology may be applied.
In the present embodiment, the service function of a digital currency exchange is included in a remittance execution service, and an example will be shown in which the name of the key used in the remittance execution service is directly used in the user interface provided by the remittance instruction apparatus.
Further, the database functionality is used in the present embodiment, and the data stored in the database is stored in the hard disk 104, the RAM 103, or the like. Alternatively, it can be stored on another apparatus and can be read and written by using the communication unit 105.
The customer computer 202 is a computer terminal operated by the customer 201, and is, for example, a personal computer, a smartphone, a tablet, or the like on which a browser or the like (access processing unit 2021) operates. The customer 201 is an example of a “remittance source” and a user who uses a given remittance execution service.
The remittance instruction apparatus 203 is an information processing apparatus that manages key information for each customer and exchange and can give remittance instructions to a plurality of exchanges. The remittance instruction apparatus 203 may be realized by being distributed or made redundant by a plurality of information processing apparatuses. The remittance instruction apparatus 203 includes a key definition table 2031, a key information table 2032, a key registration processing unit 2033, and a remittance processing unit 2034. The key definition table 2031 is a table that stores the definition related to the key for each of the plurality of remittance execution services. Here, the key definition table 2031 is a table that holds for each exchange and language the character strings of the names of each key required when using the API of the remittance execution service provided by the exchange. The key definition table 2031 associates the exchange 20311, the language 20312, the key type 20313, and the key name 20314. There needs to be at least one or more key names for each exchange. As a matter of course, the key type 20313 does not have to have the same contents as those of the key type 204221, and the key type may be represented by a position in the array. Further, the key definition table 2031 may be a separate table for each language.
The key information table 2032 is a table that manages key information 20323 for each customer 20321 and exchange 20322. The key information 20323 includes a plurality of pairs of the key type 203231 and the key 203232. Further, the key information 20323 is different for each pair of customer 20321 and exchange 20322, and may include at least one key and information that can uniquely identify the customer 20321 on the exchange 20322. For example, one of the keys is the user identifier of the customer 20321 on the exchange 20322, or information that can be converted into the user identifier. Further, for example, another key is a private key for encryption/digital signature used for communicating with the exchange 20322.
The key registration processing unit 2033 generates and returns a key registration page by referring to the key definition table 2031 in response to a key registration request from the customer, and the key input via the key registration page is stored in the key information table 2032. The remittance processing unit 2034 gives remittance instruction to the specified exchange using the key registered in the key information table 2032 to transfer the specified amount of the specified virtual currency to the remittance destination in response to a remittance request from the customer.
Subsequently, the flow of the process of registering the customer's key will be described with reference to
Next, the customer 201 operates the customer computer 202 to register the key obtained earlier in the remittance instruction apparatus 203. In the present embodiment, the remittance instruction apparatus 203 has a function of a web server. Therefore, in principle, the customer computer 202 and the remittance instruction apparatus 203 communicate using https. First, the access processing unit 2021 of the customer computer 202 accesses the web page for key registration provided by the remittance instruction apparatus 203 (key registration URL (Uniform Resource Locator)) (S111), and if the customer 201 has not yet logged in, the remittance instruction apparatus 203 returns a login page to the customer computer 202 (S112). In response to this, the access processing unit 2021 displays the received login page on the screen. When the customer 201 inputs the username and password to the login page, the access processing unit 2021 transmits these to the remittance instruction apparatus 203 as authentication information (S113). In addition, the access processing unit 2021 may also transmit the identification information of the exchange (exchange ID, etc.) in which the key is registered to the remittance instruction apparatus 203. Alternatively, the identification information may be included in the key registration URL. If this authentication information matches the information registered in advance in the remittance instruction apparatus 203, the key registration processing unit 2033 of the remittance instruction apparatus 203 generates a key registration page. Here, the key registration processing unit 2033 refers to the key definition table 2031 and reads the key type 20313 and the key name 20314, based on the exchange ID received in step S113, etc. and the display language of the access processing unit 2021, and generates a key registration page that includes a key entry field corresponding to the key name 20314. Then, the key registration processing unit 2033 transmits the generated key registration page to the customer computer 202 (S114). At this point, to maintain the authentication state, the key registration processing unit 2033 can also send a cookie to the customer computer 202. The access processing unit 2021 displays the key registration page received from the remittance instruction apparatus 203 on the screen.
The key registration page 400 displayed on the customer computer 202 includes text boxes (key entry fields 412 and 422) for inputting the keys corresponding to the key name 411 “API key” and the key name 421 “private key” for the exchange name 401, as shown for example in
Here, the names (key names) of “API key” and “private key” are matched with the expressions (character strings) used by the information system of the customer exchange 204. This is possible because the key names are stored in the key definition table 2031 for each exchange and language. By doing so, once the implementation of the generation process of the key registration page (web page) in the key registration processing unit 2033 is completed, even a back-end engineer who does not know front-end technology such as HTML can automatically generate a key registration page just by writing a program corresponding to the exchange and writing the correspondence of the names of these keys. This is quite important because it allows a small number of people to respond quickly to more exchanges. In addition, since the key name between the key registration page and the key information page of the exchange is consistent, the customer does not have to wonder which key to enter, which is useful from the viewpoint of usability.
One way to do the above is to use object-oriented inheritance and internationalization technology. Here,
The key registration processing unit 2033 generates the web page of
Here, the above-mentioned translation table (key definition table 2031) is a lookup table as shown in
The explanation will be continued by returning to
Here, an example of the key information table 2032 is shown in
Subsequently, the configuration related to the payment procedure according to the present embodiment will be described with reference to
The store server 205 is a computer device that provides a website for electronic commerce. The store server 205 corresponds to the store operator that operates the server and can be said to be an example of a “remittance destination”. The store server 205 stores the approval URL 2051 in the storage device. The approval URL 2051 is the URL of the remittance instruction apparatus 203 that the customer computer 202 should access for remittance approval. Since other configurations of the store server 205 can be realized by using known techniques, a detailed description thereof will be omitted. The store exchange 207 is a virtual currency exchange in which the merchant who operates the store server 205 is registered as a user. Therefore, since the configuration of the store exchange 207 is like that of the customer exchange 204, a detailed description thereof will be omitted. Ledger 208 is drawn as a functional block for convenience to be a transaction record of any virtual currency, for example, a blockchain.
Based on the above, the flow of the payment procedure will be described with reference to
The remittance amount 1002 is an area for displaying the amount of money remitted from the customer side to the store side in connection with the order. Therefore, the remittance instruction apparatus 203 inserts the amount in the currency included in the received payment information into the remittance amount 1002. Here, when the base currency is stored in the database in the remittance instruction apparatus 203 as set by the customer 201, the converted amount obtained by converting the remittance amount into the value of the base currency can be added to the web page. As a result, the customer 201 can easily grasp the present value of the remittance amount based on the amount converted into their base currency. For that purpose, the remittance instruction apparatus 203 needs to obtain the board information from the customer exchange 204 in advance. The “board information” is a list of bid and ask prices between two currencies on the exchange. If the board information is a list of buying and selling of the remittance currency expressed in the base currency, the converted amount of the remittance amount is (remittance amount×maximum bid price−exchange fee). On the other hand, when the board information is a list of buying and selling of the base currency expressed in the remittance currency, the converted amount of the remittance amount is (remittance amount/maximum ask price−exchange fee). If the exchange fee is deducted in the remittance currency, it is ((remittance amount−exchange fee)×maximum bid price) and ((remittance amount-exchange fee)/maximum ask price), respectively. Here, the maximum bid price or the minimum ask price can be regarded as the conversion rate.
Further, the exchange selection field 1003 is a drop-down menu for selecting the exchange of the remittance source. The remittance processing unit 2034 acquires from the key information table 2032 a list of exchanges that are registered the keys associated with the logged-in customer 201. Then, the remittance processing unit 2034 generates the remittance approval page 1000 so that the acquired list is displayed when the exchange selection field 1003 is selected. Therefore, the customer 201 can select a desired exchange from the displayed list. The customer exchange 204 can later determine the remittance source by identifying the account of the customer 201 based on this key associated with the customer 201 who is logged in. When the customer 201 selects another exchange in the exchange selection field 1003 while the above converted amount is displayed, the access processing unit 2021 notifies the remittance instruction apparatus 203 to that effect. Then, the remittance processing unit 2034 recalculates the converted amount at the selected exchange based on the above, updates the web page, and transmits it to the customer computer 202. As a result, the access processing unit 2021 displays the converted amount after the update.
Also, the Cancel button 1004 is for stopping the payment process. When the customer 201 selects the Cancel button 1004, the access processing unit 2021 notifies the remittance instruction apparatus 203 to that effect, the remittance processing unit 2034 notifies the store server 205 to cancel the payment process, and the payment process is canceled. Specifically, the remittance processing unit 2034 may realize “notification” by acquiring a URL character string from the Notification URL column corresponding to the store in the store information table 2035, and sending a POST request to the store server 205 to the URL with/cancel added to the end. Here, the remittance processing unit 2034 inserts the information including the transaction ID digitally signed with the private key of the remittance instruction apparatus 203 into the body of the POST request. The store server 205 cancels the order based on this transaction ID.
The Approve button 1005 is for the customer 201 to allow the remittance and continue the payment process. When the customer 201 selects the Approve button 1005, the access processing unit 2021 notifies the remittance instruction apparatus 203 of the approval of remittance for the currency, the remittance amount, and the exchange displayed on the remittance approval page 1000 (S207). The remittance processing unit 2034 notifies the store server 205 of the remittance approval (S208). Specifically, the remittance processing unit 2034 may realize “notification” by acquiring a URL character string from the Notification URL column corresponding to the store in the store information table 2035, and sending a POST request to the URL with/confirmed added at the end. Here, the remittance processing unit 2034 inserts the information that includes the transaction ID digitally signed with the private key of the remittance instruction apparatus 203 into the body of the POST request.
After sending the remittance approval notification to the store server 205, the remittance processing unit 2034 of the remittance instruction apparatus 203 transmits the remittance instruction to the customer exchange 204 (S209).
More specifically, the remittance processing unit 2034 identifies and reads from the key information table 2032 the key information that corresponds to the user (logged-in user) who has permitted or approved the remittance and the approved exchange (the exchange selected on the remittance approval page 1000, that is, the remittance execution service 2041). Then, the remittance processing unit 2034 uses the identified key information to transmit a remittance instruction to the remittance execution service 2041 of the selected exchange (here, the customer exchange 204) to transfer the digital currency and the remittance amount permitted to the remittance destination address of the store, which is the remittance destination.
Here, the method of sending the remittance instruction differs depending on the exchange. For example, the remittance instruction is sent by sending a POST request to https://exchange.com/api/withdraw. Here, the remittance processing unit 2034 includes in the body of the request the following information digitally signed using one of the keys (for example, a private key) in the Key information column of the row corresponding to the exchange in the key information table 2032.
When the remittance execution service 2041 of the customer exchange 204 receives the remittance instruction from the remittance instruction apparatus 203, the remittance execution service 2041 identifies the user (customer 201) based on the key information in the remittance instruction, and identifies the remittance source address available to the user for the currency and remittance amount in the remittance instruction. For example, the remittance execution service 2041 identifies the user as customer 201 and the user's key with the API key included in the received remittance instruction. Then, the remittance execution service 2041 verifies the digital signature of the information included in the received remittance instruction with the identified key, and when verified, the remittance source address corresponding to the identified user is determined based on the currency included in the received remittance instruction. Here, the remittance execution service 2041 may use a fixed remittance source address or a dynamically generated remittance source address.
After this, the remittance execution service 2041 transfers the remittance amount included in the remittance instruction from the determined remittance source address to the remittance destination address included in the remittance instruction by writing the fact of transfer (transaction record) to the ledger 208 corresponding to the currency included in the remittance instruction (S210). For example, when the currency is Bitcoin, the remittance execution service 2041 records the remittance facts on the Bitcoin blockchain.
After issuing the remittance instruction to the customer exchange 204, the remittance processing unit 2034 of the remittance instruction apparatus 203 continues to monitor the ledger 208 and determines whether or not remittance to the remittance destination address can be regarded as completed. When the currency is Bitcoin, the remittance processing unit 2034 considers that the remittance has been completed when confirmation is made a predetermined number of times on the blockchain. The remittance processing unit 2034 considers that the remittance is completed when the transaction record corresponding to the predetermined digital currency specified in the remittance information satisfies a confirmation condition. Here, the confirmation conditions may be variable. For example, the confirmation conditions may be updated by the remittance instruction apparatus 203 or an external apparatus (for example, a store server 205, etc.). When it is considered that the remittance is completed, the remittance processing unit 2034 sends a payment notification to the store server 205 (S211). Specifically, the remittance processing unit 2034 may realize “payment notification” by acquiring a URL character string from the column for the notification URL corresponding to the store in the store information table 2035, and sending a POST request to the URL with/transferred added at the end. Here, the remittance processing unit 2034 inserts the information including the transaction ID digitally signed with the private key of the remittance instruction apparatus 203 into the body of the POST request.
In the above description, any mention related to a load balancer for processing more requests is omitted. However, in this embodiment, known techniques such as load balancers can be used for distribution of load for a large number of requests. The key registration processing unit 2033 is an example of a key registration unit. The remittance processing unit 2034 is an example of a remittance information acquisition unit, a verification unit, a conversion unit, a display information generation unit, an identification unit, a remittance instruction unit, and a remittance notification unit. The CPU 101 in the remittance instruction apparatus 100 functions as the key registration processing unit 2033 and the remittance processing unit 2034 by executing the program 1021. Further, the “payment information” is an example of remittance information in which the remittance amount and the remittance destination in a predetermined digital currency are specified.
As described above, in the present embodiment, an example of the remittance instruction apparatus was shown in which the remittance details are displayed on the customer computer after the customer is authenticated. In the present embodiment, by storing the names of the keys presented by the customer exchange for each exchange and each display language, the customer can register those keys in the remittance instruction apparatus without confusion. Therefore, the convenience for customers who use a plurality of exchange companies can be improved. In addition, by doing so, it is possible to improve the development efficiency of the remittance instruction apparatus at the same time and respond to more exchanges faster. That is, it is possible to comprehensively handle remittance instructions for a plurality of exchange companies.
The second embodiment is a modification of the first embodiment and shows an example of a system in which remittance approval is performed at the same time as customer authentication, thus giving priority to the efficiency of the remittance approval sequence.
The hardware configuration of the remittance instruction apparatus according to the second embodiment is the same as that shown in
The sequence for registering the key shall follow
The key definition table 2031a is a table that manages the number of keys 20315 for each exchange 20311. As one method of realizing the key definition table 2031a, there is a method of using a lookup table. Needless to say, instead of storing the number of keys, it can be realized even in the first embodiment by storing the key names and appropriately counting the number of key names using a table.
The explanation will be continued by returning to
The explanation will be continued by returning to
The customer 201 inputs the keys obtained from the customer exchange 204 on the key registration page 400a displayed on the customer computer 202. In response to this, the access processing unit 2021 transmits to the remittance instruction apparatus 203a the key information in which the character strings of the keys input in the key input fields 412 and 422 of the key registration page 400a are associated with the display order. Here, the access processing unit 2021 associates the key character string input in the key input field 412 with the display order “1” and the key character string input in the key input field 422 with the display order “2” and uses them as key information. Then, the key registration processing unit 2033a adds to or updates the key information table 2032a with the keys 203232 in the order included in the received key information, with the logged-in user as the customer 20321 and the exchange ID as the exchange 20322.
The explanation will be continued by returning to
Subsequently, the flow of the payment procedure will be described with reference to
The store server 205a transmits the received approval URL (including the transaction ID in the parameter) to the customer computer 202 (S202-3). Then, the customer computer 202 sends a GET request to the approval URL received by https (S203a), and it is received by the remittance instruction apparatus 203a. The remittance processing unit 2034a of the remittance instruction apparatus 203a extracts the transaction ID from the parameter of the approval URL and uses it to read the payment information from the database. At the same time, the expiration date of the transaction ID may be confirmed from the creation time recorded in the database. The remittance processing unit 2034a generates a remittance approval page 1000a from this payment information and returns the remittance details to the customer computer 202 (S206a).
At this point, the remittance processing unit 2034a acquires the store name from the store information table 2035 using the store ID as in the first embodiment when generating the remittance approval page 1000a. In addition, the remittance processing unit 2034a extracts the currency and the amount from the payment information. Here, in the second embodiment, a case will be described where the remittance processing unit 2034a obtains the conversion rate to the base currency also considering the amount of the remittance currency.
Further, the remittance approval page 1000a includes a remittance amount 1002a and a converted amount in base currency 1002b. The remittance amount 1002a is the currency and amount thereof included in the payment information. The converted amount in base currency 1002b is an area for displaying the “converted amount” described above in the first embodiment. Here, the converted amount is an amount converted from the remittance amount 1002a into the base currency of the customer 201 based on the “board information” in the default exchange. The remittance processing unit 2034a may periodically acquire board information from the exchange.
Returning to
After that, the remittance processing unit 2034a of the remittance instruction apparatus 203a sends a remittance approval notification to the store server 205a (S208) and issues a remittance instruction to the customer wallet 206 (S209a). The method of transmitting the remittance instruction is defined by the customer wallet 206, and it is possible to transmit information including the remittance destination and the remittance amount permitted for remittance, with the key. Here, the remittance processing unit 2034a searches the key information table 2032a for a row in which the customer and the exchange (customer wallet 206) match and acquires the key information. If the customer wallet 206 is a wallet that handles a plurality of currencies, the remittance processing unit 2034a specifies remittance instructions including the remittance currency.
When the remittance execution service 2061 of the customer wallet 206 receives the remittance instruction from the remittance instruction apparatus 203a, the remittance execution service 2061 remits the remittance amount included in the remittance instruction to the remittance destination included in the remittance instruction (S210); for example, the remittance execution service 2061 remits money by writing the remittance fact on the ledger 208 corresponding to the currency. After that, the remittance execution service 2061 continues to monitor the ledger 208.
Then, the remittance instruction apparatus 203a waits for the payment notification by the method specified by the customer wallet 206. For example, the remittance execution service 2061 considers that the remittance has been completed, when there are a predetermined number of confirmations on the blockchain of the ledger 208, and a payment notification is transmitted to the remittance instruction apparatus 203a (S211-1). When the remittance processing unit 2034a of the remittance instruction apparatus 203a receives the remittance notification from the customer wallet 206, the remittance notification is sent to the customer server 205a by using the information including the transaction ID using the long-term connection session (S211-2).
As described above, in the present embodiment, an example of a system that approves remittance at the same time as customer authentication has been shown. In addition, an example of acquiring board information from an exchange service other than the customer wallet is shown. In particular, in determining the conversion rate, not only the maximum bid price and the minimum ask price but also a plurality of bid prices and ask prices and their transaction volumes are taken into consideration to suppress an unexpected price drop with the exchange of a large remittance amount. We also show that the present invention can be realized by various connection forms by relying on the customer wallet service for payment monitoring.
The third embodiment is a modified example of the first and second embodiments. The present embodiment shows an example of dynamically generating a remittance destination address, in order to use a different remittance destination address for each payment even for remittance to the same store. We also consider the case when the format for remittance requests is commonly defined between remittance execution services, for example, when the interface for using the remittance execution service is unified. Further, remittance by currency other than the specified currency is also dealt with.
It is assumed that the hardware configuration of the remittance instruction apparatus according to the third embodiment is similar to that in
The sequence for registering the key shall be in accordance with
Further, the store server, which was one in the other embodiment, is divided into a store sales server 205b that provides a customer user interface and a store processing server 205c that processes orders. Further, in the third embodiment, the customer smartphone 202a is used instead of the customer computer. When the customer smartphone 202a executes the application 2022, some functions of the remittance instruction apparatus can be taken over. Therefore, what was the remittance instruction apparatus in the other embodiment is divided into two, and in the third embodiment, the key registration processing unit 2033b and the remittance processing unit 2034b of the remittance instruction server 203b, and the application 2022 on the customer smartphone 202a are combined and regarded as a remittance instruction system. The customer smartphone 202a stores a program in a storage device (not shown), in which the processing of the application 2022 according to the third embodiment is implemented. The processor (not shown) reads the program from the storage device into the memory, and by executing this, the function of the application 2022 according to the third embodiment is realized.
An authentication function is implemented in the application 2022 on the customer smartphone 202a, and when the customer 201 inputs a username and a password, they are sent to the remittance instruction server 203b. When the remittance instruction server 203b receives them, it checks the username and password pair held in the database and returns an authentication token if they match. The authentication token is information that makes it possible to avoid repeated authentication. For example, a set of username and time that is digitally signed with the private key of the remittance instruction server 203b can be used. It is well known among those skilled in the art that the password can be verified by a challenge response method without sending the password as it is. Further, a method of comparing password hash values instead of comparing passwords as they are is also well-known.
First, the customer 201 begins the ordering sequence on the store sales server 205b using the customer smartphone 202a. Then, the customer 201 performs an operation of confirming the purchase at the end of the ordering sequence. As a result, the access processing unit 2021a transmits a trigger for starting remittance to the store sales server 205b (S301). Then, the store sales server 205b returns the approval URL for remittance approval with a set of the store ID, transaction ID, currency, and amount (hereinafter referred to as “payment information”) as parameters to the customer smartphone 202a (S302). That is, the payment information according to the third embodiment does not include the remittance destination address. Here, the transaction ID, currency, and amount included in the payment information are shared with the store processing server 205c, and the store processing server 205c can confirm the contents later. When the access processing unit 2021a of the customer smartphone 202a opens the received approval URL for remittance approval, it launches application 2022 with deep link functionality (for example, Universal Link in the case of iOS (registered trademark), Intent URL in the case of Android (registered trademark)). When the specific application 2022 is activated, the customer smartphone 202a first sends an authentication token and requests a list of wallets from the remittance instruction server 203b (S303). In response to this, the remittance processing unit 2034b of the remittance instruction server 203b confirms the digital signature of the authentication token and returns the following information to the specific application 2022 of the customer smartphone 202a (S304).
At this point, the remittance processing unit 2034b of the remittance instruction server 203b uses the customer wallet names (exchange names) whose keys are registered in association with the username (customer ID) from the key information table 2032a in
Now, there is a large difference in remittance time depending on the digital currency. Therefore, the remittance processing unit 2034b of the remittance instruction server 203b can obtain the distribution of the remittance time for each currency by recording the time from the remittance instruction to the receipt of the remittance in the past. Therefore, as shown in
When the customer 201 selects a currency in the drop-down menu 2007, the application 2022 converts the amount in the currency of the payment information into the selected currency and displays it in the remittance amount 2002a as the converted amount. The conversion rate at this time may be obtained by the method shown in another embodiment, but in this embodiment, a method of obtaining by using the time series information of the board information is shown. Specifically, the remittance processing unit 2034b of the remittance instruction server 203b successively acquires the board information from the exchange 204a, and records in the database the maximum bid price and the minimum ask price from the board information of each currency pair together with time information. Then, the remittance processing unit 2034b obtains the average of the maximum bid prices and the minimum ask prices within the latest fixed period at the timing (S304) of sending the list of customer wallet names to the application 2022, and sends them together with the conversion rate of the bid price and the ask price to the application 2022. By obtaining the conversion rate in this way, it is possible to suppress large fluctuations in the conversion rate in a short period of time. On the other hand, it is also possible to predict the conversion rate in the near future from the past board information by using machine learning such as deep learning. By doing so, we aim to suppress fluctuations in the amount of money when exchanging currency at the time of deposit.
Further, the remittance fee may be included in the converted amount displayed in the remittance amount 2002a. In this case, the payment amount to be displayed is calculated by the following formula.
Converted amount=(Amount in payment information×Conversion rate+Exchange fee)+Remittance fee
or
Converted amount=(Amount in payment information/Conversion rate+Exchange fee)+Remittance fee
In addition, the application 2022 displays the amount in the base currency designated by the customer 201 in the converted amount in base currency 2002b along with the converted amount of the remittance amount 2002a. In that case, the calculation method can be the same as that of the first or second embodiments. Alternatively, for example, the average of the past bid price and the ask price may be used as the conversion rate, as in the case of obtaining the converted amount. In any case, it is convenient for the customer 201 to have the currency that minimizes the amount in the base currency as the default value of the drop-down menu 2007.
When the customer 201 selects the Cancel button 2004 on the remittance approval screen 2000 of
On the other hand, when the customer 201 selects the Approve button 2005 on the remittance approval screen 2000 of
Here, a method of generating a remittance destination address will be described. That is, the remittance instruction server 203b generates an address corresponding to the digital currency as the remittance destination address according to the characteristics of the predetermined digital currency. Here, it is assumed that the remittance instruction server 203b holds in advance the attribute (indicating whether or not to dynamically generate the remittance destination address) for each currency in the remittance destination address generation control table 2038 of the database as shown in
Further, the remittance instruction server 203b stores the remittance destination address management table 2039 as the database that holds keys for generating the remittance destination address.
Returning to the description of
After that, the remittance instruction server 203b continues to monitor the ledger 208 and reflects the remittance status as the transaction status. In addition, since the currency specified in the payment information and the remittance currency may be different, the remittance currency and the remittance amount are added to the transaction details. For example, in the case of the BTC blockchain, a process called “confirmation” is repeated after writing the fact of remittance. If “confirmation” is performed n times, the transaction status is set to “confirmed n”. Then, when the confirmation is repeated exceeding a certain number of times N, the transaction status is set to “confirmed N+”, and monitoring of the remittance is stopped thereafter. Then, the remittance processing unit 2034b transmits a payment notification with the transaction ID whose transaction status is “confirmed N+” to the store processing server 205c (S312).
The store processing server 205c can inspect the received transaction status, and when the desired number of confirmations is reached, can start a process such as shipping a product. For urgent services, the process can be started after the remittance is approved. It is up to the store to decide when to start this process.
As described above, in the present embodiment, an example in which the remittance destination address is dynamically generated has been shown. It also supports remittances in currencies other than the specified currency. It should also be mentioned that if the method adopted by the Armory Deterministic Wallet is used as the remittance destination address generation method, only the public key needs to be stored in the remittance instruction server for the remittance destination address generation.
The present embodiment 4 is a modification of the first, second, or third embodiment, and shows an example of a system with which any store or individual can trade. Further, in the fourth embodiment, remittance instruction can be given after the remittance instruction apparatus has exchanged money in a currency different from the currency selected by the customer.
The configuration of the hardware in the remittance instruction apparatus according to the fourth embodiment is similar to that of
First, the customer 201 begins the ordering sequence on the store server 205d using the customer computer 202. Customer 201 performs an operation to confirm the purchase at the end of the ordering sequence. As a result, the access processing unit 2021 transmits to the store server 205d a trigger for starting remittance (S401). Then, the store server 205d returns the approval URL for approving the remittance to the customer computer 202 with the store server URL (first destination information), transaction ID, currency, and amount digitally signed with the private key of its own SSL certificate 2053 (hereinafter referred to as “payment information”) as a parameter (S402). Then, the access processing unit 2021 of the customer computer 202 opens a new browser window and issues a GET request to the acquired approval URL (S403). If the customer 201 is not logged in to the remittance instruction apparatus 203d at this point, the same login process as in step S204 described above is performed (S404, S405).
After logging in, the remittance processing unit 2034d of the remittance instruction apparatus 203d extracts the store server URL from the payment information and downloads the SSL certificate 2053 from the URL (S406). Then, the remittance processing unit 2034d verifies that the extracted payment information is digitally signed with the corresponding private key by using the public key stated in the SSL certificate 2053. After confirming that it is correctly signed digitally, the remittance processing unit 2034d generates a web page (remittance approval page 2500, display page) as shown in
Then, the remittance processing unit 2034d transmits the generated remittance approval page 2500 to the customer computer 202 as remittance details (S407). The access processing unit 2021 displays the remittance approval page 2500 received from the remittance instruction apparatus 203d on the screen. Then, when the customer 201 selects the Approve button 2505, the access processing unit 2021 notifies the remittance instruction apparatus 203d of remittance approval with the currency, the remittance amount, and the exchange displayed on the remittance approval page 2500 (S408).
Here, in the present embodiment, the currency to be remitted can be changed. For that purpose, the following operation is performed before the customer 201 presses the Approve button 2505. For example, when customer 201 selects a currency in the drop-down menu 2507, the remittance amount 2502a displays the converted amount in the selected currency. For example, the access processing unit 2021 may notify the remittance instruction apparatus 203d of the selected currency and may acquire and display the remittance approval page 2500 whose converted amount has been updated by the remittance processing unit 2034d. Alternatively, the access processing unit 2021 may update the remittance approval page 2500 by calculating the converted amount (for example, the converted amount in base currency 2502b) based on the selected currency.
If the currency selected in the drop-down menu 2507 when the customer 201 selects the Approve button 2505 is the same as the currency included in the payment information, the remittance processing unit 2034d will send money in that currency as in the other embodiments. On the other hand, if the currency selected in the drop-down menu 2507 when the customer 201 selects the Approve button 2505 is different from the currency included in the payment information (when currency exchange is involved), the remittance processing unit 2034d exchanges the selected currency for the currency in the payment information before sending the money. At this point, it is possible to place an order at the market price, but it is also possible to place an order at the limit price so that the exchange does not exceed the converted amount. The limit price at that time is the conversion rate used when calculating the converted amount. Especially in the case of a limit order, the order may not be completed, so a mechanism to cancel the order is necessary.
If the transaction is treated as canceled, in step 2608, the remittance processing unit 2034d records in the database that the payment of the transaction ID of the store ID has been canceled, and the payment process is now stopped. Assuming the host name of the remittance instruction apparatus 203d is api.sender.com, the store server 205d issues a GET request to https://api.sender.com/v1/payments/{store ID}/{transaction ID}, and the status of the transaction recorded in the database can be known. Here, the {store ID} part of the URL is replaced with the store ID, and the {transaction ID} part is replaced with the transaction ID. If the status is “Canceled”, it can be known that the payment has been canceled. In the present embodiment, this is a form of notification to the store server 205d.
Conversely, if the transaction is treated as complete, the remittance processing unit 2034d records the transaction status as “Approved” in step 2607. The store server 205d can acquire this state from the above URL. After setting the transaction status to “Approved”, the remittance instruction apparatus 203d confirms the amount exchanged with the customer exchange 204 and instructs the customer exchange 204 to remit it to the remittance destination address in the payment information (S411). Then, the remittance execution service 2041 of the customer exchange 204 writes the fact of remittance on the ledger 208 (S412). After that, the remittance instruction apparatus 203d continues to monitor the ledger 208 and updates the transaction status. The store server 205d confirms whether the remittance approval has been granted by polling the remittance instruction apparatus 203d. As a result, the store server 205d can grasp that the remittance approval has been granted. Therefore, in
As described above, in the present embodiment, a remittance instruction apparatus is shown with which any store server can start a transaction even if the store account is not registered in advance on the remittance instruction apparatus. By using the SSL certificate, the authenticity of the store is evaluated, and the customer can pay with confidence. It should also be mentioned here that if the SSL certificate verification is eliminated, this is a system in which any individual who does not have a web server can request payment by writing the URL in an email or the like.
The present embodiment 5 is a modification of the first to fourth embodiments and shows an example in which a payment procedure is started by opening a URL link.
It is assumed that the hardware configuration of the remittance instruction apparatus according to the fifth embodiment is similar to that in
The mail server 209 is a general mail server. The mail server 209 receives the payment request mail from the store server 205e and stores it in the storage device as a payment request mail 2091. The mail server 209 sends a payment request mail 2091 to the customer computer 202 in response to a mail retrieval request from the mail client 2023 of the customer computer 202.
The mail client 2023 of the customer computer 202 sends a mail retrieval request to the mail server 209 at the time of startup or the like, and receives the payment request mail 2091 including the approval URL 2051 from the mail server 209 (S501). When the customer 201 performs a click or equivalent on the approval URL described in the received mail, the access processing unit 2021 accesses the approval URL (S502). This opens the web page of the remittance instruction apparatus 203e. Here, if the customer 201 is not logged in when the remittance processing unit 2034e of the remittance instruction apparatus 203e prepares the web page, the remittance processing unit 2034e sends the login page to the customer computer 202 in the same manner as in step S204 described above (S503). When the customer 201 inputs the username and the password on this login page, the access processing unit 2021 transmits this to the remittance instruction apparatus 203e as authentication information (S504). In response to the receipt of the authentication information, the remittance processing unit 2034e of the remittance instruction apparatus 203e requests the SSL certificate from the store server URL of the store server 205e indicated by the parameter of the approval URL accessed in step S502, and obtains the SSL certificate 2053 from the store server 205e (S505). The remittance processing unit 2034e verifies the contents of the acquired SSL certificate 2053. Then, the remittance processing unit 2034e issues a GET request to the endpoint specified as a parameter of the approval URL. The store server 205e that received the GET request returns payment information including the remittance currency, the remittance amount, the remittance destination address, the required number of confirmations, and the notification destination by https (S506). Here, an example using https is shown, but when it is not necessary to keep the payment information secret, it goes without saying that tampering can be prevented, if the payment information is digitally signed by the private key of the SSL certificate 2053, even if the communication method is not encrypted. Further, as a matter of course, the same effect can be obtained by other communication methods without depending on http/https.
The payment information may be described in a predetermined structured method (structured language) such as HTML as in a web page. In that case, the remittance processing unit 2034e parses the DOM (Document Object Model) tree and extracts necessary information. For example, if the remittance currency, the remittance amount, the remittance destination address, the required number of confirmations, and the notification destination are each included in elements with unique ids, the remittance processing unit 2034e searches for and extracts them. Alternatively, if the remittance currency, remittance amount, remittance destination address, required number of confirmations, and notification destination are each associated with labels and placed on the web page, the remittance processing unit 2034e only has to first search for those labels and then extract the associated information.
Alternatively, the payment information may be described in json format, which is another structured method. In this case, since keys are assigned to the information, the implementation of the remittance processing unit 2034e becomes easy. On the contrary, when the payment information is described in HTML, there is an advantage that there is no need to have experience in implementing REST API when implementing the store server 205e, which makes it easy for the store side. In either case, by returning the payment information to the remittance instruction apparatus 203e via https, it is possible to prevent tampering of the information with a method provided as standard on the web server, and it is possible to improve efficiency of development and to also reduce the risk of vulnerabilities due to bugs associated with new development.
The remittance processing unit 2034e that has extracted the payment information adds the contents to a web page (remittance approval page 2500) as shown in
When the customer 201 confirms the payment information, the Approve button 2505 is selected, and the access processing unit 2021 of the customer computer 202 notifies the remittance instruction apparatus 203e, as a remittance approval, the fact that remittance is allowed for the currency, remittance amount and the exchange displayed or selected on the remittance approval page 2500 (S508). Then, the remittance processing unit 2034e of the remittance instruction apparatus 203e first adds the information as shown in
In other words, it can be said as follows. That is, first, the remittance processing unit 2034e receives the SSL certificate 2053 from the store server 205e in step S505, and receives the payment information digitally signed with the key of the SSL certificate 2053 in step S506. Alternatively, when the communication between the store server 205e and the remittance instruction apparatus 203e is encrypted by https or the like, the payment information does not need a digital signature. Then, when the remittance processing unit 2034e receives the remittance approval from the customer computer 202 in step S508, the remittance processing unit 2034e generates a billing account for the store server 205e using the contents of the SSL certificate, and stores the generated account in the remittance history storage unit. As a result, the remittance instruction apparatus 203e can automatically generate an account when a remittance occurs and manage the billing status for each account without requiring each store to register an account in advance. Therefore, the remittance instruction apparatus 203e can promote the spread of its own remittance instruction service through the store.
Here, the remittance processing unit 2034e should generate an account using the host name included in the SSL certificate as an identifier. Since the SSL certificate is issued for each host, the uniqueness of the store can be easily and surely guaranteed.
Further, it is desirable for the remittance processing unit 2034e to start billing the remittance destination when the number of remittance instructions to the account registered in the remittance history storage unit satisfies a predetermined billing condition (for example, when the maximum number of times is exceeded). As a result, the store, as the remittance destination, can use the remittance instruction service free of charge up to a certain number of times without registering the account on the remittance instruction apparatus 203e in advance. Then, the remittance instruction apparatus 203e can manage billing by charging the account for which the free remittance instructions exceed a certain number of times.
Then, after recording to the transaction log 20371, the remittance processing unit 2034e notifies the store server 205e that the payment has been approved (S509). Specifically, since the notification destination URL for remittance approval notification is included in the notification destination of the payment information, the remittance processing unit 2034e issues a https POST request to the notification destination URL. Even if the transaction ID is not explicitly sent to the notification destination, by incorporating the information in the URL, the same effect can be obtained without treating it as a parameter.
Then, the remittance processing unit 2034e uses the key of the customer 201 to transmit a remittance instruction including the remittance currency, the remittance amount, and the remittance destination address to the customer exchange 204 (S510). However, the remittance destination address here is based on the content recorded in the transaction log 20371. First, the remittance processing unit 2034e searches the transaction log 20371 and confirms whether or not the number of transactions for the same host name in the past fixed period (for example, one month) is less than or equal to a predetermined number. If the number of times is less than a predetermined number, the remittance processing unit 2034e uses the remittance destination address acquired from the store server 205e. At this point, for example, the remittance processing unit 2034e sets ‘false’ in the payment reservation flag (“reserve” key) of the corresponding transaction log 20371. On the contrary, if the number of times exceeds a predetermined number, the remittance processing unit 2034e uses the remittance destination address prepared by the remittance instruction apparatus 203e (the management address managed by the remittance instruction apparatus 203e to reserve the remittance amount). As a result, if the number of transactions exceeds a predetermined number, the payment will be temporarily reserved at a specific address. At this time, for example, the remittance processing unit 2034e sets ‘true’ in the payment reservation flag (“reserve” key) of the corresponding transaction log 20371.
That is, at least, the remittance processing unit 2034e further associates the remittance destination address included in the remittance information with the generated account and registers it in the remittance history storage unit as remittance history information, and when the number of remittance instructions satisfies the billing condition, instead of issuing the remittance instruction to the remittance destination address, the remittance processing unit 2034e gives the remittance instruction for remittance of the remittance amount to the management address managed by the remittance instruction apparatus 203e. The remittance processing unit 2034e may calculate the number of remittance instructions by counting the remittance history information for the account registered in the remittance history storage unit. Alternatively, the remittance processing unit 2034e may determine whether the below condition is satisfied by performing predetermined statistical processing on the remittance history information for the account.
After that, the customer exchange 204 writes the fact of remittance on the ledger 208 in response to the remittance instruction (S511). Here, the key of the customer 201 is stored in advance in a NoSQL database as shown in
Since the transaction ID (txid) on the ledger is obtained as a response from the customer exchange 204, the remittance processing unit 2034e of the remittance instruction apparatus 203e monitors the ledger 208 after the remittance instruction, and waits until it may be considered that the remittance has been received. When confirmation of the ledger is repeated as many times as the required number of confirmations for the payment information, the remittance processing unit 2034e of the remittance instruction apparatus 203e notifies the store server 205e of the payment (S512). Therefore, when the payment information notification destination includes the payment notification destination URL, the remittance processing unit 2034e issues a https POST request to the payment notification destination URL. The body includes the URL for withdrawal described later. In a blockchain ledger such as Bitcoin (BTC), if the ledger is confirmed repeatedly, the probability of being canceled later will decrease, but it doesn't become completely zero. Therefore, the store server 205e should adjust the required number of confirmations each time according to the remittance amount, the financial status of the store, the expected remittance time, and the like. The remittance processing unit 2034e may adjust the required number of confirmations instead of the store server 205e.
That is, the payment notification according to the present embodiment can be processed as follows, and these can also be applied to the above-described embodiments 1 to 4 as well. First, the confirmation conditions are updated for each remittance instruction. Further, the store server 205e may update the confirmation condition based on the remittance amount included in the remittance information. Further, it is desirable that the store server 205e updates the confirmation conditions based on the confirmation history of the transaction record. Further, the confirmation condition may be updated at the remittance destination based on the remittance amount included in the remittance information. In addition, the confirmation conditions may be updated based on the asset information of the remittance destination.
In addition, the remittance processing unit 2034e transmits a withdrawal URL (third destination information) as the form data of the POST request.
That is, the remittance processing unit 2034e notifies the remittance destination of a payment notification including a third destination information for withdrawing the remittance amount when the transaction record corresponding to the designated predetermined digital currency satisfies the predetermined confirmation condition.
If an email address is specified as the notification destination in the payment information instead of the payment notification destination URL, the remittance processing unit 2034e includes the withdrawal URL in the email body in addition to the payment notification text, and sends the email to the specified email address. The URL for withdrawal differs for each host name, and an expiration date can be set.
When a store employee opens this withdrawal URL with a web browser on a store server 205e or other terminal, a web page including a table as shown in
That is, the remittance processing unit 2034e calculates at least the amount obtained by subtracting the remittance instruction fee from the remittance amount as the withdrawal amount in response to the withdrawal request from the remittance destination, and gives the remittance instruction to remit the withdrawal amount from the management address to the remittance destination address. At this time, when the remittance processing unit 2034e accepts the input of the second remittance destination address as a withdrawal request from the remittance destination, it is desirable for the remittance processing unit 2034e to compare the remittance destination address associated with the account of the remittance destination registered in the remittance history storage unit with the second remittance destination address, and if one of the remittance destination addresses and the second remittance destination address match, to give the remittance instruction to remit from the management address to the second remittance destination address for the withdrawal amount obtained by subtracting the remittance instruction fee from the remittance amount. Further, the remittance processing unit 2034e may accept the withdrawal request while the remittance destination accesses the third destination information. As a result, the remittance instruction apparatus 203e can perform billing reliably. In addition, the store side can easily and surely obtain the withdrawal amount. The remittance instruction for these withdrawals may use the remittance execution service in another exchange or wallet or may use a remittance execution service implemented in the remittance instruction apparatus 203e.
As described above, in this embodiment, an example of a payment request by URL is shown. Since this approval URL is a URL, it can be used not only in an email but also as a link on a web page or a two-dimensional code on printed matter. With the store's https server providing payment information, many advantages including the following can be enjoyed.
Compared to including payment information etc. in the URL parameter, the URL can be shorter, which is convenient for writing in emails and documents.
Although the URL is short, the payment information acquired later is encrypted, so it is possible to prevent a third party from forging or falsifying the payment information, and remittance to a destination not intended by the customer can be avoided. As a usage pattern, for example, we can have the URL of this service displayed on the store site by making the remittance fee free for a predetermined number of times. Then, when the user (customer) of the store site clicks the link, the user registration screen of this service can be automatically displayed.
There is no need to register a transaction in the remittance instruction apparatus or create an account in advance for the store to generate a URL, and the burden on the remittance instruction apparatus and the store server is light. For example, it can be realized with a one-time account.
Since forgery and falsification are difficult and the burden on the remittance instruction apparatus is light, the approval URL can be disclosed to an unspecified number of people to request remittance. For example, it is also suitable for the remittance destinations of donations, small businesses, or individuals to use for their own payment as the store side.
A store server implementer can realize a payment function simply by embedding an approval URL in a web page and preparing a page that describes payment information. The store server is easy to implement, and the user only clicks the link, which is highly convenient for the user. Therefore, usage of this service can be promoted.
In addition, the following advantages can be enjoyed by using the information in the SSL certificate.
It is possible to charge using the remittance instruction apparatus without the need for store employees to create an account.
There is no need to collect personal information such as email addresses, names and passwords to create an account.
Since the identity can be guaranteed without manually creating a store account, there is no cost to confirm the identity.
The remittance instruction apparatus according to the present embodiment may be any apparatus that receives remittance information at least based on the public key certificate regarding the remittance destination. For example, cases are included where the remittance instruction apparatus receives the remittance information by encrypted communication using the public key certificate (for example, https), or when it receives the remittance information digitally signed by the key of the public key certificate at the remittance destination.
In the sixth embodiment, an example of applying each of the above-described embodiments to the remittance execution service will be shown.
It is assumed that the hardware configuration of the remittance execution apparatus according to the sixth embodiment is the same as that of
First, the customer 201 starts the ordering sequence on the store server 205f using the customer computer 202. Customer 201 performs an operation to confirm the purchase at the end of the ordering sequence. As a result, the access processing unit 2021 transmits a trigger to the store server 205f for starting remittance (S601). Alternatively, in the case of a physical store, the clerk instead may do this on a computer other than the customer computer 202. Then, the store server 205f creates a new URL by combining the following information as URL parameters with the URL 2054 (second destination information) of the remittance execution apparatus 204b. In the present embodiment, this will be referred to as an approval URL.
Here, the payment information URL may point to one endpoint of the store server 205f. Or, other servers may be used. In the sixth embodiment, the description will be continued assuming that it points to one endpoint of the store server 205f.
Then, the store server 205f transmits this approval URL to the customer computer 202 (S602). Further, when the customer computer 202 has a camera, the approval URL can be read via a two-dimensional code. Further, the same applies to other communication methods such as infrared communication and short-range wireless communication. Then, the access processing unit 2021 of the customer computer 202 issues a GET request to the acquired approval URL (S603). If the customer 201 is not logged in to the remittance execution apparatus 204b at this point, the same login process as in step S204 described above is performed (S604, S605).
After logging in, the remittance processing unit 2044 of the remittance execution apparatus 204b requests the SSL certificate from the payment information URL acquired from the URL parameter of the approval URL, and acquires the SSL certificate 2053 from the store server 205f (S606). The remittance processing unit 2044 verifies the contents of the acquired SSL certificate. Then, the remittance processing unit 2044 issues a GET request to the payment information URL. The store server 205f that received the GET request returns payment information including the remittance currency, the remittance amount, the remittance destination address, the required number of confirmations, and the notification destination by https (S607).
By allowing the payment information to be written in HTML, the store server 205f need only provide a web page explaining the product (service) for the URL parameter above.
1. The remittance processing unit 2044 searches the page for a ‘td’ element containing the character string “Price:”.
2. The remittance processing unit 2044 searches for the element including the character string “tax included” from the elements belonging to the ‘tr’ element including the ‘td’ element above.
3. The remittance processing unit 2044 uses the character string representing a numerical value in the character string of the element (Tax-included price section 3312) including the “tax included” above as the remittance amount. (0.00324 in this example.)
4. If there is a character string representing a currency that can be remitted in the character string of the element including the “tax included” above, the remittance processing unit 2044 uses it as the remittance currency. (BTC in this example.)
In addition, this product page 3300 has an element whose id is “payment-attributes”, and the character string is the remittance destination address, notification destination, and required number of confirmations encrypted with the public key of the remittance execution apparatus 204b. By encrypting the remittance destination address, it is possible to prevent the customer 201 from sending money to the remittance destination address without following a predetermined procedure. In addition, by encrypting the notification destination, unnecessary spam mail and the like can be avoided.
The remittance processing unit 2044, which has extracted the payment information, adds the contents to the web page (remittance approval page 2500) as shown in
After confirming the payment information, the customer 201 selects the Approve button 2505, and the access processing unit 2021 of the customer computer 202 notifies the remittance execution apparatus 204b of the approval of remittance for the currency, remittance amount and exchange displayed or selected on the remittance approval page 2500 (S609). Then, the remittance processing unit 2044 of the remittance execution apparatus 204b notifies the store server 205f that the payment has been approved (S610). Specifically, since the email address is included in the notification destination of the payment information, the remittance processing unit 2044 sends an email to this email address to the effect that the payment has been approved. By including the transaction ID, which was acquired before as a URL parameter, in the email body, the recipient of the email can recognize which transaction has been approved. This email is electronically signed or encrypted with the private key of the remittance execution apparatus 204b to prevent tampering.
Then, the remittance processing unit 2044 issues a remittance instruction including the remittance currency, the remittance amount, and the remittance destination address to the remittance execution unit 2041a (S611). Then, the remittance execution unit 2041a writes the fact of remittance on the ledger 208 in response to the remittance instruction (S612). At this time, for a currency such as BTC in which a plurality of remittance destination addresses can be specified, the remittance execution unit 2041a collects a remittance execution fee. Specifically, the remittance execution unit 2041a remits to the remittance destination address specified by the store server 205f the specified amount minus the commission and remits the remittance execution commission to another remittance destination address held by the remittance execution apparatus 204b. When writing to the ledger 208, an identifier (transaction ID; txid) on the ledger is obtained. Therefore, after the remittance instruction, the remittance processing unit 2044 monitors the ledger 208 and waits until it is considered that the money has been received. When confirmation of the ledger is repeated the number of times specified as the required number of confirmations, the remittance processing unit 2044 sends an email to the email address specified before for the notification destination notifying that the payment has arrived (S613). It includes the transaction ID in the body of the email. As with the previous notification, emails can be encrypted or digitally signed.
As described above, in the sixth embodiment, an example in which both remittance execution and remittance processing are performed by one apparatus has been shown. It has been shown that the advantages of the above-described first to fifth embodiments can be enjoyed even if the remittance execution and the remittance processing are not implemented in separate apparatuses.
This embodiment is a modification of the above-described first to sixth embodiments and shows an example of a system in which the present invention is implemented on apparatuses of customers and stores such as smartphone applications.
The payment information presenting apparatus described later in the present embodiment can have the same configuration as the remittance instruction apparatus 3500. Further, in the present embodiment, database functionality is used, and the data in the database is stored in the long-term storage device 3504, the RAM 103, or the like. Even if it is stored by other means, the essence of the invention is not impaired. If the remittance instruction apparatus 3500 and the payment information presentation apparatus are considered to be implemented as smartphones and tablets, it will be easy to imagine the usage situation.
The remittance instruction apparatus 203A is a computer terminal operated by the customer 201 (predetermined user), and is a personal computer, a smartphone, a tablet, or the like which runs, for example, a browser or the like (access processing unit 2021A), or an application software or the like (UI display unit 36036A, remittance processing unit 2034A, or key registration processing unit 2033A, or access processing unit 2021A). The customer 201 is an example of a “remittance source” and a user who uses a predetermined remittance execution service.
Further, the remittance instruction apparatus 203A is an information processing apparatus capable of managing key information for each exchange on which the customer 201 has an account and can give remittance instructions to a plurality of exchanges. The remittance instruction apparatus 203A includes a key definition table 2031, a key information table 2032A, a key registration processing unit 2033A, a remittance processing unit 2034A, an access processing unit 2021A, and a UI display unit 36036A. The key definition table 2031 is a table that stores definitions related to the keys for each of the plurality of remittance execution services. Here, the key definition table 2031 is a table for managing per key type the character strings for the names of the keys used on the information systems of the exchanges, for the keys required when using the APIs of the remittance execution services provided by the exchanges, for each exchange and language. The key definition table 2031 associates the exchange 20311, the language 20312, the key type 20313, and the key name 20314. There may be at least 1 or more key names for each exchange. As a matter of course, the key type 20313 does not have to have the same contents as the key type 204221, and the key type may be represented by a position in the array. Further, the key definition table 2031 may be a separate table for each language.
The key information table 2032A is a table that manages key information 20323 for each exchange 20322. The key information 20323 includes a plurality of pairs of the key type 203231 and the key 203232. Further, the key information 20323 is different for each exchange 20322 and may include at least one key and information that can uniquely identify the customer 201 on the exchange 20322. For example, one of the keys is the user identifier of the customer 201 on the exchange 20322, or information that can be converted into the user identifier. Further, for example, another key is a private key for encryption or digital signature used for communicating with the exchange 20322. Here, the key information table 2032A is an example of a key information storage unit, and stores each of a plurality of key information for predetermined users to use each remittance execution service by at least associating each of a plurality of remittance execution services.
The key registration processing unit 2033A generates and returns a key registration page by referring to the key definition table 2031 in response to a key registration request from the customer, and stores the key input via the key registration page to the key information table 2032A. In response to the remittance request from the customer, the remittance processing unit 2034A gives a remittance instruction to the specified exchange for the specified virtual currency and amount for remitting to the remittance destination using the key registered in the key information table 2032A.
Subsequently, the flow of the process of registering the customer's key will be described with reference to
Next, the customer 201 operates the remittance instruction apparatus 203A to register the key obtained earlier. At this point, it is assumed that the lock for using the remittance instruction apparatus 203A and the application has already been released. Here, a sequence for displaying the key registration screen for the exchange to be registered will be described with reference to
The key registration screen 3900 displayed on the remittance instruction apparatus 203A includes text boxes (key entry fields 412 and 422) for inputting the keys corresponding to the key name 411 “API key” and the key name 421 “private key” for the exchange name 401, for example, as shown in
Here, the names (key names) of “API key” and “private key” are matched with the expressions (character strings) handled on the information system of the customer exchange 204. This is possible because the key definition table 2031 stores the name of the key for each exchange and language. By doing so, once the implementation of displaying the key registration screen in the key registration processing unit 2033A is completed, even a programmer who does not know UI display technology can write a program corresponding to a new exchange, and the key registration screen can be displayed simply by describing the correspondence with the key names. This is particularly important because it allows a small number of people to respond quickly to more exchanges. In addition, since the key names are consistent between the key registration screen and the key information page of the exchange, the customer does not have to wonder which key to enter, which is helpful from the viewpoint of usability.
One way to achieve this is to use object-oriented inheritance and internationalization technology. Here,
The UI display unit 36036A displays the screen in
Here, the above-mentioned translation table (key definition table 2031) is a lookup table as shown in
Explanation will be continued by returning to
Here, an example of the key information table 2032A is shown in
The sequence for performing a remittance instruction will be described with reference to
After the remittance instruction application software is launched, the remittance processing unit 2034A extracts the store public key URL from the payment information, and downloads the SSL certificate 2053 of the store server 205A indicated by the host name (store server URL) of the URL by the method specified by https communication, and its validity is verified (S4202, S4703). Then, the remittance processing unit 2034A downloads the store public key 42052 from the store public key URL with https communication, and verifies that the extracted payment information is digitally signed with the store private key 42051 corresponding to the store public key 42052 (in the payment information presentation apparatus 4205) (S4203, S4704). After confirming that it was digitally signed correctly, the remittance processing unit 2034A passes the information necessary for generating the screen as shown in
Then, the UI display unit 36036A displays the generated remittance approval screen 4300 on the screen (S4204, S4706). Then, when the customer 201 selects the Approve button 2505 (S4707), the UI display unit 36036A notifies the remittance processing unit 2034A of the remittance approval including the currency, the remittance amount, and the transaction ID displayed on the remittance approval screen 4300 (S4205, S4708).
Now, the character string pattern may be restricted in the path of the store public key URL. For example, if the store public key URL can contain only up to three single-byte slashes (/), it will be difficult to appropriate the SSL certificate of the website hosting service (that is, another company). In addition, the use of specific domains may be prohibited, and the restriction on the character string pattern may be changed or lifted for specific domains.
In this embodiment, the currency to be remitted can be changed. For that purpose, the following operation is performed before the customer 201 presses the Approve button 2505. For example, when customer 201 selects a currency in the drop-down menu 2507, the remittance amount 2502a displays the converted amount in the selected currency. For example, the UI display unit 36036A may notify the remittance processing unit 2034A of the selected currency, obtain the converted amount calculated by the remittance processing unit 2034A, and display the updated remittance approval screen 4300.
If the currency selected in the drop-down menu 2507 when the customer 201 selects the Approve button 2505 is the same as the currency included in the payment information, the remittance processing unit 2034A will send currency in that currency as in the other embodiments. More specifically, as the identifying unit, the remittance processing unit 2034A identifies and reads the key information 20323 associated with the exchange ID (remittance execution service) included in the remittance approval from the key information table 2032A. Then, the remittance processing unit 2034A uses the identified key information to transmit a remittance instruction to the remittance execution service 2041 of the selected exchange (here, the customer exchange 204) to transfer the approved digital currency and remittance amount to the remittance destination address of the store that is the remittance destination (S4207, S4711).
On the other hand, if the currency selected in the drop-down menu 2507 when the customer 201 selects the Approve button 2505 is different from the currency included in the payment information (if accompanied by currency exchange), the remittance processing unit 2034A sends the currency after exchanging the selected currency for the currency of the payment information (S4206, S4709). At this time, it is possible to place an order at the market price, but it is also possible to place an order at a limit price so that the exchange does not exceed the converted amount. The limit price at that time is the conversion rate used when calculating the converted amount.
After the currency exchange is performed, the remittance processing unit 2034A confirms the exchanged amount with the customer exchange 204 (S4710), and transmits a remittance instruction for the customer exchange 204 to transfer the exchanged amount to the remittance destination address in the payment information (S4207, S4711). Then, the remittance execution service 2041 of the customer exchange 204 writes the fact of remittance on the ledger 208 (S4208). After that, because the store exchange 207 can monitor the ledger 208, the store exchange 207 can monitor the ledger 208, detect payment to the remittance destination address of the store, and transfer the balance of the remittance destination address to the payment information presentation apparatus 4205, the payment information presentation apparatus 4205 can know the payment by checking the balance. If the store has multiple payment information presentation apparatuses, assigning a remittance destination address to each apparatus makes it easier to monitor payments. Alternatively, if memory capacity allows, the payment information presentation apparatus 4205 may directly monitor the ledger 208. At that point, if the identifier (Transaction ID; txid) on the ledger at the time of remittance is acquired from the remittance instruction apparatus 203A with a two-dimensional code or the like, monitoring can become more efficient. Alternatively, if a new remittance destination address is generated for each transaction, the correspondence between the customer and the transaction can be clarified. Alternatively, if the txid is transmitted to the notification destination of the store server 205A by the method shown in the eighth embodiment, the store side can surely detect the deposit.
As described above, in the present embodiment, the remittance instruction apparatus that allows any store server to start a transaction even if the store information (store name, remittance destination address, etc.) is not registered in advance in the remittance instruction apparatus is shown. By using the SSL certificate, the credibility of the store can be evaluated, and the customer can pay with confidence. In addition, this can prevent fraudulent acts such as putting a fake sticker on the two-dimensional code of the store. Further, in the present embodiment, the signature source of the payment information can be guaranteed by placing the public key for verifying the digital signature of the payment information on the https server assured by the SSL certificate. By making this possible without sharing the private key of the SSL certificate with the payment information presenting apparatus, the risk of leaking the private key of the SSL certificate is reduced. Further, in order to invalidate the approval URL issued so far, it is only necessary to delete the public key on the store server.
It should also be mentioned here that if the SSL certificate and the verification of the digital signature are eliminated, any individual who does not have a web server can request payment with a apparatus having the same configuration as the payment information presenting apparatus. That is, the refund process can be easily performed by the customer side presenting the two-dimensional code and the store side using the remittance instruction apparatus.
Also, of the multiple elements included in the payment information (store public key URL, transaction ID, remittance destination address (remittance destination account), currency, amount, notification destination, etc.), which elements are used as the parameter of the approval URL and which elements are provided by the store server may be changed. Further, the customer may input some of the elements. For example, as in the second embodiment, the transaction ID may be included as a parameter of the approval URL, and the other elements described above may be provided from the store server 205A. In this case, the payment information presentation apparatus 4205 notifies the store server 205A (corresponding to the store server URL) of payment information (and transaction ID) including the remittance destination address, currency, amount, notification destination, etc. in advance. (The transaction ID may be issued by the store server 205A.) Then, the payment information presentation apparatus 4205 outputs an approval URL in which the store server URL and the transaction ID are specified as parameters to the remittance instruction apparatus 203A. When the remittance processing unit 2034A of the remittance instruction apparatus 203A acquires the approval URL, it extracts the store server URL and the transaction ID from the parameters of the approval URL, and sends a payment information request to the store server 205A using the store server URL and the transaction ID. The store server 205A returns payment information (generated as necessary) to the remittance instruction apparatus 203A based on the transaction ID received from the remittance instruction apparatus 203A. Alternatively, as in the fifth and sixth embodiments, the payment information can be provided from the store server 205A to the remittance instruction apparatus 203A by including the payment information URL (URL of the web page in which the payment information is described) in the parameter of the approval URL. In this case, the payment information presentation apparatus 4205 outputs an approval URL in which the payment information URL is specified as a parameter to the remittance instruction apparatus 203A. When the remittance processing unit 2034A of the remittance instruction apparatus 203A acquires the approval URL, it extracts the payment information URL from the parameters of the approval URL and transmits the payment information request to the store server 205A using the payment information URL. The store server 205A returns payment information to the requesting remittance instruction apparatus 203A in response to the payment information request for the payment information URL.
Further, it can be said that the payment information presenting apparatus at least outputs payment information specifying information for specifying payment information. Here, the payment information specifying information may be the payment information itself or access information to the payment information (for example, payment information URL, transaction ID, store server URL, store public key URL, etc.). Further, the payment information specifying information may be represented by electronic information such as an approval URL in which payment information or access information to payment information is specified as a parameter, or visual information that expresses this such as two-dimensional code. In these cases, the remittance processing unit 2034A of the remittance instruction apparatus 203A identifies the payment information based on the payment information specifying information acquired from the payment information presentation apparatus 4205, and issues the remittance instruction based on the identified payment information. For example, when the payment information specifying information is access information to the payment information, the remittance processing unit 2034A can extract the access information from the payment information specifying information and acquire the payment information from the store server with the access information.
The method of outputting the payment information specifying information by the payment information presenting apparatus includes the following. For example, the payment information presenting apparatus may output the payment information specifying information to be displayed on a display mounted on or connected to the payment information presenting apparatus. In this case, as described above, the remittance instruction apparatus can acquire the payment information specifying information displayed on the display via the reading unit such as a camera mounted on the apparatus. Alternatively, the payment information presenting apparatus may output the payment information specifying information by transmitting the payment information specifying information to the remittance instruction apparatus by wired or wireless communication. In this case, the remittance instruction apparatus may display the payment information specifying information received from the payment information presenting apparatus on its own display unit. Alternatively, the remittance instruction apparatus may send a payment information specifying information acquisition request to the payment information presenting apparatus, and the payment information presenting apparatus may return the payment information specifying information in response to the acquisition request. In this case as well, the remittance instruction apparatus may display the received payment information specifying information on its own display unit. Alternatively, the remittance instruction apparatus may extract payment information or access information from the received payment information specifying information.
In this embodiment, in particular, since the company that provides the remittance instruction service does not need to manage any server, and the key management can be left to the customer, the remittance can be performed at an extremely low cost. Further, since the payment information presenting apparatus does not need to communicate with the server when presenting the payment information, it is also an advantage that the payment information can be presented without delay. At the same time, payment information is prepared by each store server, and remittance instructions are also processed by each customer terminal, so the processing load is distributed, and the remittance execution service is usually designed to withstand high loads, so it is possible to provide a comprehensive payment service with high processing capacity at an extremely low cost.
In this embodiment, an example in which the remittance instruction application software is launched with the deep link function is shown, but the processing of the remittance processing unit can also be started by implementing functionality of photographing and recognizing a two-dimensional code in the remittance instruction application software itself.
Further, also in the present embodiment, as in the above-described first to sixth embodiments, payments from a plurality of payment companies can be comprehensively handled to improve customer convenience.
This embodiment is a modification of the other embodiments and shows an example in which a payment procedure is started by opening a URL link. It is assumed that remittances are handled by financial institutions and payment services that handle electronic money, shopping points, legal tender, etc. and that remittances and payments can be instructed through APIs. These financial institutions and payment services will be collectively referred to as “financial institutions”. In addition, terms related to sending digital currencies such as remittance, transfer, payment, settlement, and remittance reservation will also be collectively referred to as “remittance”.
The hardware configuration of the remittance instruction apparatus according to the present embodiment is similar to that shown in
The mail server 209 is a general mail server. The mail server 209 receives the payment request mail from the store server 205B and stores it in the storage device as a payment request mail 2091. The mail server 209 sends the payment request mail 2091 to the remittance instruction apparatus 203B in response to the mail retrieval request from the mail client 2023 of the remittance instruction apparatus 203B.
The mail client 2023 of the remittance instruction apparatus 203B sends a mail retrieval request to the mail server 209 at the time of startup or the like, and receives the payment request mail 2091 including the approval URL 2051 from the mail server 209 (S4402, S4802). The received payment request mail 2091 is displayed to the customer 201 (S4403, S4803). When the customer 201 selects the approval URL written in the received email (S4404, S4804), the remittance instruction application is launched (S4805). When the remittance instruction application is launched, it is possible to demand an authentication procedure such as password input or biometric authentication of customer 201. After starting the remittance instruction application, the remittance processing unit 2034B requests the SSL certificate from the store server URL of the store server 205B pointed to by the parameter (or its redirect destination) of the approval URL selected in step S4404 before (S4804). Then, the SSL certificate 2053 is obtained from the store server 205B (S4405, S4806). The remittance processing unit 2034B verifies the contents of the acquired SSL certificate 2053. If the verification is successful, the remittance processing unit 2034B issues a GET request to the endpoint specified as the parameter (or its redirect destination) of the approval URL. The store server 205B that receives the GET request returns by https payment information including the remittance currency, the remittance amount, the remittance destination address (remittance account), and the notification destination (S4406, S4807). Here, an example using https is shown, but when it is not necessary to keep the payment information secret, if the payment information is digitally signed by the private key of the SSL certificate 2053, it goes without saying that tampering can be prevented even if the communication is not encrypted. Further, as a matter of course, the same effect can be obtained by other communication methods without depending on http/https.
The remittance processing unit 2034B passes the acquired payment information and the contents of the SSL certificate to the UI display unit 36036B (S4808), and the UI display unit 36036B displays the contents on the screen as shown in
When the customer 201 confirms the payment information, the Approve button 2505 is selected (S4810), and the UI display unit 36036B notifies the remittance processing unit 2034B to that effect (S4408, S4811). The remittance processing unit 2034B notifies the store server 205B of the fact that the remittance is approved for the financial institution and the remittance amount displayed or selected on the remittance approval screen 4500 (S4409, S4812). Specifically, since the notification destination of the payment information above includes the notification destination URL of the remittance approval notification, the remittance processing unit 2034B issues a https POST request to the notification destination URL. Even if the transaction ID is not explicitly sent to the notification destination, by incorporating the information in the URL, the same effect can be obtained without treating it as a parameter.
If a telephone number is specified as the notification destination of the payment information instead of the notification destination URL, the remittance processing unit 2034B sends a remittance approval notification text to the telephone number as SMS. Alternatively, a voice call may be made to the telephone number as an automatic voice message.
Then, the remittance processing unit 2034B transmits a remittance instruction to the financial institution 4404 using the key of the customer 201 (S4410, S4813). The usage of the key conforms to the method specified by the financial institution. For example, one of the keys (private key) is used to digitally sign the set of (another key, remittance amount, and remittance destination account) and it is sent to the financial institution to give a remittance instruction. The other key is an identifier that represents the remittance source account. After that, the remittance execution service 44041 of the financial institution 4404 that received the remittance instruction performs the remittance.
As described above, in this embodiment, an example of remittance using a URL has been shown. In the present embodiment, an example of transmitting the URL by email is shown, but of course it is also possible to write the URL on a web page.
Further, also in the present embodiment, as in the above-described first to seventh embodiments, payments from a plurality of payment companies can be comprehensively handled to improve customer convenience.
The above-mentioned remittance destination address, encrypted character string, and the like are merely examples.
Further, the above-mentioned confirmation of transaction records is not limited to Proof of Work (PoW), and Proof of Stake (PoS), Proof of Importance (PoI), Proof of Human-Work (PoH) and other methods may be used.
In addition, the remittance instruction apparatus or the remittance execution apparatus of each of the above-described embodiments may have the following configurations. Here, what is described as “page” may be a page of a web page or a screen of application software.
That is, a conversion unit for calculating the converted amount obtained by converting the remittance amount into another currency based on the conversion rate between the predetermined digital currency and the other currency can be further provided.
Then, a display information generation unit can be further provided for adding the converted amount to the display page to be displayed on the user's terminal.
Then, the display information generation unit can select at least a part of the plurality of remittance execution services based on the confirmation history of the transaction record corresponding to each of the plurality of digital currencies, and the list of selected remittance execution services may be further added to the display page as options for the user.
In addition, when the user selects another currency, the remittance instruction unit may give a remittance instruction to the predetermined remittance execution service for the exchanged amount after exchanging the remittance amount from the predetermined digital currency to the selected other currency.
Further, when another remittance execution service is selected by the user, the identification unit newly identifies the other remittance execution service and the key associated with the user from the key information storage unit. Instead of the predetermined remittance execution service, the remittance instruction unit may use the newly identified key to give the remittance instruction to the other remittance execution service for remitting the converted amount.
The conversion unit may calculate the converted amount in consideration of the remittance fee of the predetermined remittance execution service.
Alternatively, the remittance instruction unit may give instruction to exchange the remittance amount from the predetermined digital currency to the other currency when the converted amount has a lower total cost in the user's base currency than the remittance amount, and to remit the amount of currency after the exchange to the remittance destination address.
In addition, the conversion unit may calculate the converted amount using the conversion rate obtained from the exchange for the digital currency.
Further, the conversion unit may calculate the conversion rate from the board information acquired from the exchange for the digital currency.
Further, the conversion unit may calculate the conversion rate in consideration of the transaction volume in currency trading included in the board information.
Further, the other currency may be the base currency of the user.
Alternatively, if the expected processing time for when the remittance amount is exchanged from the predetermined digital currency to another currency is within a specified time, the remittance instruction unit may have the remittance execution service exchange the remittance amount from the predetermined digital currency to the other currency, and give a remittance instruction to send the amount after the exchange.
Further, the payment information may be digitally signed with the store private key instead of the SSL certificate private key.
Also, of the multiple elements included in the payment information (store server URL, transaction ID, remittance destination address (remittance destination account), currency, amount, notification destination, etc.), which element is used as the parameter of the approval URL and which element is provided by the store server may be changed. Further, the customer may input some of the elements. In particular, if the “amount”, which is one of the elements in the payment information, is provided by the store server, the approval URL can be fixed at the store or cash register, and a sticker can be attached if it is a two-dimensional code. Alternatively, even if the “amount” is included in the approval URL, it is possible to fix the approval URL for each product.
The remittance instruction apparatus according to the first, second, fourth, and fifth embodiments described above may be realized as an application running on the OS executed on the customer computer 202. In that case, the storage device in the customer computer 202 may store a program in which a key definition table, a key information table and other various tables, and a key registration processing unit, a remittance processing unit and other various processing units are implemented. Then, the processor in the customer computer 202 reads the program from the storage device into the memory and executes the program, so that the customer computer 202 operates as a key registration processing unit, a remittance processing unit, and various other processing units. In this case, the communication between the customer computer 202 and the remittance instruction apparatus 203 and the like is replaced with the communication inside the customer computer 202. Further, when the key information table is placed on the customer computer, the user is uniquely determined, and the process of identifying the customer may not be required.
In the above-described embodiment, the description is made as a hardware configuration, but the present invention is not limited to this. The present disclosure can also be realized by having the CPU execute computer programs for arbitrary processing.
In the above example, the program can be stored and supplied to a computer using various types of non-transitory computer readable media. Non-transitory computer-readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R/Ws, DVDs (Digital Versatile Disc), semiconductor memory (e.g., mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, and RAM (Random Access Memory)). The program may also be supplied to the computer by various types of temporary computer readable media (transitory computer readable medium). Examples of temporary computer-readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.
The present disclosure is not limited to the above embodiment and can be appropriately modified without departing from the spirit. Further, the present disclosure may be carried out by appropriately combining the respective embodiments.
This application claims priority based on Japanese Unexamined Patent Application No. 2018-156010 filed on Aug. 23, 2018 and Japanese Unexamined Patent Application No. 2018-235584 filed on Dec. 17, 2018, and all of the disclosures are incorporated here.
Number | Date | Country | Kind |
---|---|---|---|
2018-156010 | Aug 2018 | JP | national |
2018-235584 | Dec 2018 | JP | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/JP2019/014820 | 4/3/2019 | WO | 00 |