已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。
1小时前关闭。
Improve this question的
我尝试使用这个POS SDK的示例代码。代码来自销售消息示例,但甚至没有编译。
这段代码中正确的JSON代码是什么?
namespace bank
{
class Program
{
static void Main(string[] args)
{
List<string> ports = POSIntegrado.Instance.ListPorts();
string portName = "COM9";
if (ports.Count > 0)
{
POSIntegrado.Instance.OpenPort(portName, 115200);
int amount = 1;
Task<SaleResponse> response = POSIntegrado.Instance.Sale(amount, ticket);
string ticket = JsonConvert.SerializeObject( new
{
"Function" = 210,
"Response"= "Aprobado",
"Commerce Code"= 550062700310,
"Terminal Id"= "ABC1234C",
"Ticket"= "AB123",
"Authorization Code" = "XZ123456",
"Amount": 15000,
"Shares Number", 3,
"Shares Amount", 5000,
"Last 4 Digits", 6677,
"Operation Number", 60,
"Card Type": "CR",
"Accounting Date": "28/10/2019 22:35:12",
"Account Number": "30000000",
"Card Brand": "AX",
"Real Date": "28/10/2019 22:35:12",
"Employee Id": 1,
"Tip": 1500
});
字符串
我花了三天时间,没有结果。什么是正确的JSON代码?这个例子由github https://github.com/TransbankDevelopers/transbank-pos-sdk-dotnet提供,我无法联系到开发人员。
只有错误缺失;:”
1条答案
按热度按时间gopyfrb31#
这不是真实的代码,也没有存储在您提供的链接中。类似的内容在这个“详细SDK”页面中显示。这不是真正的代码。它是方法调用沿着它们假定的结果。这也是错误的。
Task<T>
并不是实际的API响应,它是一个承诺,将来会异步完成某些事情。C#属性名称中也不能有空格。这个页面似乎包含了不完整的伪代码沿着序列化为JSON而不是C#符号的响应。你可以把它当作指南,但不能复制它。
您需要使用
await
来等待像Sale
这样的异步操作,而不会阻塞执行线程。下面的代码检查端口名是否在可用端口列表中,如果在,则打开它并调用
Sale
。一旦该方法返回,它将授权代码和整个响应打印为字符串。字符串
确保使用
try/finally
关闭串行端口,即使发生错误。