我有以下方法,用來驗證一張票/令牌
。 var ticketArray = ticket.split('|'/span>);
//First check to verify token using simple versification algo[/span].
if (widget.eventID.toString() != (ticketArray[0] )) {
setState(() {
ticketMainMsg = 'This QR code is NOT VALID';
ticketsubtitle = ticketArray.length != 2; ticketsubtitle = ticketArray.length !
? '該二維碼是假的'; ticketsubtitle = ticketArray.length !=2 ?
: 'QR碼可能屬于其他事件'。
ticketStatus = false。
return;
});
}
//Make API call
從上面可以看出,我對qr碼/token做了一個非常簡單的檢查,如果這個簡單的步驟失敗了,我就懶得進行API呼叫,我根據這些值來設定狀態。
然而,如果檢查通過,那么我將繼續向服務器發出 API 呼叫,以完全驗證令牌/代碼。
我的問題是,我現在正在努力將API呼叫的值分配給ticketStatus、ticketMainMsg和ticketsubtitle引數。誰能給我一些啟示。我對flutter很陌生,但我知道TicketModel將是Future的一個型別。我的背景是PHP,所以請原諒我!
EDIT:http.com.cn/share.php?
編輯:httpVerifyTicket類
class HttpVerifyTicketPost {
String ticket。
int someId;
int anotherId;
HttpVerifyTicketPost(
{required this.ticket, required this. someId, required this.otherId})。)
String verifyURL =
'https://api.com/api/vendors/scanner/native/verify/ticket'。
Future<TicketModel> verifyTicket() async {
var storage = await SharedPreferences.getInstance() 。
var code= storage.getString('code')。
var client = http.Client();
var ticketModel = null;
var body = {
'ticket': ticket,
'scanner': scannerCode,
'someId': someId,
'otherId': anotherId
};
try {
var url = Uri.parse(verifyURL)。
var res = await client.post(url, body: jsonEncode(body) );
if (res.statusCode == 200) {
var jsonString = res.body。
var jsonMap = json.decode(jsonString);
ticketModel = TicketModel.fromJson(jsonMap);
}
return ticketModel;
} catch (Exception) {
return ticketModel;
}
}
uj5u.com熱心網友回復:
請試試這個
HttpVerifyTicketPost(
eventId: widget.eventID,
ticket: 票據。
scannerId: widget.scannerId,
).verifyTicket().then((value){setState() {
ticketModel=value
});
});
uj5u.com熱心網友回復:
我不太明白你想實作什么,但也許你需要添加一個異步方法,如
ticketModel = await HttpVerifyTicketPost( //add await eventId: widget.eventID, ticket: ticket, scannerId: widget.scannerId, ) .verifyTicket();
你必須添加async,如Future Foo() async {your code...}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/326621.html
標籤:
