mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-01-25 19:55:52 +00:00
GET, don't POST, the goods. orders submitting
TODO create and return SimplexOrder and url_launch redirect endpoint 💪
This commit is contained in:
parent
8a1eee204b
commit
595d7e760d
1 changed files with 37 additions and 59 deletions
|
@ -110,20 +110,27 @@ class SimplexAPI {
|
||||||
Future<BuyResponse<SimplexQuote>> getQuote(SimplexQuote quote) async {
|
Future<BuyResponse<SimplexQuote>> getQuote(SimplexQuote quote) async {
|
||||||
try {
|
try {
|
||||||
Map<String, String> headers = {
|
Map<String, String> headers = {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
};
|
||||||
|
Map<String, String> data = {
|
||||||
|
'ROUTE': 'quote',
|
||||||
|
'CRYPTO_TICKER': quote.crypto.ticker.toUpperCase(),
|
||||||
|
'FIAT_TICKER': quote.fiat.ticker.toUpperCase(),
|
||||||
|
'REQUESTED_TICKER': quote.buyWithFiat
|
||||||
|
? quote.fiat.ticker.toUpperCase()
|
||||||
|
: quote.crypto.ticker.toUpperCase(),
|
||||||
|
'REQUESTED_AMOUNT': quote.buyWithFiat
|
||||||
|
? "${quote.youPayFiatPrice}"
|
||||||
|
: "${quote.youReceiveCryptoAmount}",
|
||||||
};
|
};
|
||||||
String data =
|
|
||||||
'{"CRYPTO_TICKER": "${quote.crypto.ticker.toUpperCase()}", "FIAT_TICKER": "${quote.fiat.ticker.toUpperCase()}", "REQUESTED_TICKER": "${quote.buyWithFiat ? quote.fiat.ticker.toUpperCase() : quote.crypto.ticker.toUpperCase()}", "REQUESTED_AMOUNT": ${quote.buyWithFiat ? quote.youPayFiatPrice : quote.youReceiveCryptoAmount}}';
|
|
||||||
// TODO add USER_ID
|
// TODO add USER_ID
|
||||||
Uri url = Uri.parse('http://localhost/api.php/quote');
|
Uri url = Uri.http('localhost', 'api.php/quote', data);
|
||||||
// TODO update to stackwallet.com hosted API
|
// TODO update to stackwallet.com hosted API and use HTTPS
|
||||||
|
|
||||||
var res = await http.post(url, headers: headers, body: data);
|
|
||||||
|
|
||||||
|
var res = await http.post(url, headers: headers, body: json.encode(data));
|
||||||
if (res.statusCode != 200) {
|
if (res.statusCode != 200) {
|
||||||
throw Exception('getQuote exception: statusCode= ${res.statusCode}');
|
throw Exception('getQuote exception: statusCode= ${res.statusCode}');
|
||||||
}
|
}
|
||||||
|
|
||||||
final jsonArray = jsonDecode(res.body);
|
final jsonArray = jsonDecode(res.body);
|
||||||
|
|
||||||
jsonArray['quote'] = quote; // Add and pass this on
|
jsonArray['quote'] = quote; // Add and pass this on
|
||||||
|
@ -168,65 +175,36 @@ class SimplexAPI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void newOrder(SimplexQuote quote) async {
|
/*Future<BuyResponse<SimplexOrder>>*/ void newOrder(
|
||||||
|
SimplexQuote quote) async {
|
||||||
|
// Calling Simplex's API manually:
|
||||||
|
// curl --request POST \
|
||||||
|
// --url https://sandbox.test-simplexcc.com/wallet/merchant/v2/payments/partner/data \
|
||||||
|
// --header 'Authorization: ApiKey $apiKey' \
|
||||||
|
// --header 'accept: application/json' \
|
||||||
|
// --header 'content-type: application/json' \
|
||||||
|
// -d '{"account_details": {"app_provider_id": "$publicKey", "app_version_id": "123", "app_end_user_id": "01e7a0b9-8dfc-4988-a28d-84a34e5f0a63", "signup_login": {"timestamp": "1994-11-05T08:15:30-05:00", "ip": "207.66.86.226"}}, "transaction_details": {"payment_details": {"quote_id": "3b58f4b4-ed6f-447c-b96a-ffe97d7b6803", "payment_id": "baaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "order_id": "789", "original_http_ref_url": "https://stackwallet.com/simplex", "destination_wallet": {"currency": "BTC", "address": "bc1qjvj9ca8gdsv3g58yrzrk6jycvgnjh9uj35rja2"}}}}'
|
||||||
try {
|
try {
|
||||||
/*
|
|
||||||
String version = "123"; // TODO pull from app version variable
|
|
||||||
String app_end_user_id =
|
|
||||||
"01e7a0b9-8dfc-4988-a28d-84a34e5f0a63"; // TODO generate per-user ID (pull from wallet?)
|
|
||||||
String signup_timestamp =
|
|
||||||
"1994-11-05T08:15:30-05:00"; // TODO supply real signup timestamp (pull from wallet?)
|
|
||||||
String referral_ip = "207.66.86.226"; // TODO update to API server IP
|
|
||||||
String payment_id =
|
|
||||||
"faaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; // TODO make unique and save
|
|
||||||
String order_id = "789"; // TODO generate unique ID per order
|
|
||||||
String referrer = "https://stackwallet.com/simplex"; // TODO update
|
|
||||||
String apiKey =
|
|
||||||
"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJwYXJ0bmVyIjoic3RhY2t3YWxsZXQiLCJpcCI6WyIxLjIuMy40Il0sInNhbmRib3giOnRydWV9.VRaNZKPlc8wtkHGn0XscbsHnBMweZrMEyl2P94GfH94";
|
|
||||||
String publicKey = "pk_test_7cce3f58-680d-420c-9888-f53d44763fe6";
|
|
||||||
|
|
||||||
// Using simplex_api/order; doesn't work:
|
|
||||||
Map<String, String> headers = {'Content-Type': 'application/json'};
|
|
||||||
String data =
|
|
||||||
'{"account_details": {"app_end_user_id": "${app_end_user_id}"}, "transaction_details": {"payment_details": {"fiat_total_amount": {"currency": "${quote.fiat.ticker.toUpperCase()}", "amount": "${quote.youPayFiatPrice}"}, "requested_digital_amount": {"currency": "${quote.crypto.ticker.toUpperCase()}", "amount": "${quote.youReceiveCryptoAmount}"}, "destination_wallet": {"currency": "${quote.crypto.ticker.toUpperCase()}", "address": "${quote.receivingAddress}", "validation": "bypass"}}';
|
|
||||||
Uri url = Uri.parse('http://sandbox-api.stackwallet.com/order');
|
|
||||||
var res = await http.post(url, headers: headers, body: data);
|
|
||||||
|
|
||||||
if (res.statusCode != 200) {
|
|
||||||
throw Exception('newOrder exception: statusCode= ${res.statusCode}');
|
|
||||||
}
|
|
||||||
final jsonArray = jsonDecode(res.body);
|
|
||||||
print(jsonArray);
|
|
||||||
/*
|
|
||||||
|
|
||||||
// Calling Simplex's API manually:
|
|
||||||
// curl --request POST \
|
|
||||||
// --url https://sandbox.test-simplexcc.com/wallet/merchant/v2/payments/partner/data \
|
|
||||||
// --header 'Authorization: ApiKey $apiKey' \
|
|
||||||
// --header 'accept: application/json' \
|
|
||||||
// --header 'content-type: application/json' \
|
|
||||||
// -d '{"account_details": {"app_provider_id": "$publicKey", "app_version_id": "123", "app_end_user_id": "01e7a0b9-8dfc-4988-a28d-84a34e5f0a63", "signup_login": {"timestamp": "1994-11-05T08:15:30-05:00", "ip": "207.66.86.226"}}, "transaction_details": {"payment_details": {"quote_id": "3b58f4b4-ed6f-447c-b96a-ffe97d7b6803", "payment_id": "baaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", "order_id": "789", "original_http_ref_url": "https://stackwallet.com/simplex", "destination_wallet": {"currency": "BTC", "address": "bc1qjvj9ca8gdsv3g58yrzrk6jycvgnjh9uj35rja2"}}}}'
|
|
||||||
|
|
||||||
Map<String, String> headers = {
|
Map<String, String> headers = {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'Accept': 'application/json',
|
|
||||||
'Authorization': 'ApiKey ${apiKey}',
|
|
||||||
};
|
};
|
||||||
String data =
|
Map<String, String> data = {
|
||||||
'{"account_details": {"app_provider_id": "$publicKey", "app_version_id": "$version", "app_end_user_id": "$app_end_user_id", "signup_login": {"timestamp": "$signup_timestamp", "ip": "$referral_ip"}}, "transaction_details": {"payment_details": {"quote_id": "${quote.purchaseId}", "payment_id": "$payment_id", "order_id": "$order_id", "original_http_ref_url": "$referrer", "destination_wallet": {"currency": "${quote.crypto.ticker.toUpperCase()}", "address": "${quote.receivingAddress}"}}}}';
|
'ROUTE': 'order',
|
||||||
Uri url = Uri.parse(
|
'QUOTE_ID': "${quote.id}",
|
||||||
'https://sandbox.test-simplexcc.com/wallet/merchant/v2/payments/partner/data');
|
'ADDRESS': "${quote.receivingAddress}",
|
||||||
var res = await http.post(url, headers: headers, body: data);
|
'CRYPTO_TICKER': "${quote.crypto.ticker.toUpperCase()}",
|
||||||
|
};
|
||||||
|
// TODO add USER_ID
|
||||||
|
|
||||||
|
Uri url = Uri.http('localhost', 'api.php/order', data);
|
||||||
|
// TODO update to stackwallet.com hosted API and use HTTPS
|
||||||
|
var res = await http.post(url, headers: headers, body: json.encode(data));
|
||||||
if (res.statusCode != 200) {
|
if (res.statusCode != 200) {
|
||||||
throw Exception('newOrder exception: statusCode= ${res.statusCode}');
|
throw Exception('newOrder exception: statusCode= ${res.statusCode}');
|
||||||
}
|
}
|
||||||
final jsonArray = jsonDecode(res.body);
|
final jsonArray = jsonDecode(res.body); // TODO check if json
|
||||||
|
// TODO create and return SimplexOrder here
|
||||||
print(jsonArray);
|
print(jsonArray);
|
||||||
// TODO check if {is_key_required: true} (indicates success)
|
|
||||||
*/*/
|
|
||||||
|
|
||||||
print('test');
|
|
||||||
return;
|
return;
|
||||||
} catch (e, s) {
|
} catch (e, s) {
|
||||||
Logging.instance.log("newOrder exception: $e\n$s", level: LogLevel.Error);
|
Logging.instance.log("newOrder exception: $e\n$s", level: LogLevel.Error);
|
||||||
|
|
Loading…
Reference in a new issue