bu biraz kapsamlı bir iş fakat shopier hakim olmaniz gerekmekte ornek olarak
ShopierApi diye bir sınıf oluşturup
class ShopierApi {
static const String apiKey = 'YOUR_API_KEY';
static const String apiSecret = 'YOUR_API_SECRET';
static Future<void> initiatePayment({
required String orderNumber,
required double orderAmount,
required Buyer buyer,
required Address address,
required Product product,
}) async {
final url = Uri.parse('https://shopier link');
final response = await http.post(
url,
body: {
'apiKey': apiKey,
'secretKey': apiSecret,
'buyer_id': buyer.id,
'buyer_name': buyer.name,
'order_number': orderNumber,
'order_amount': orderAmount.toString(),
'product_name': product.name,
'product_type': product.type,
},
);
if (response.statusCode == 200) {
// Ödeme başarıyla başlatıldı, dönen cevaptaki bilgileri işleyebilirsiniz
} else {
throw Exception('Failed to initiate payment');
}
}
}CheckoutScreen sınıfı
class _CheckoutScreenState extends State<CheckoutScreen> {
// ... (diğer değişkenler ve fonksiyonlar)
Future<void> startShopierPayment() async {
final buyer = Buyer(
id: '101',
name: 'Erkin',
surname: 'Eren',
email: 'eren@erkin.net',
phone: '8503023601',
);
final address = Address(
address: 'Kızılay Mh.',
city: 'Ankara',
country: 'Turkey',
postcode: '06100',
);
final product = Product(
name: 'Test Product',
type: ProductType.DOWNLOADABLE_VIRTUAL,
);
try {
await ShopierApi.initiatePayment(
orderNumber: '52003',
orderAmount: 1.0,
buyer: buyer,
address: address,
product: product,
);
// Ödeme başarıyla başlatıldı, işlemleri burada devam ettirebilirsiniz
} catch (e) {
// Hata durumunda kullanıcıya bir hata mesajı gösterin
}
}
// ... (diğer build ve widget kodları)
}Gibi flutter ekliye bilirsin ama detaylı bir şekilde shopier api sınıfını incelemeniz gerekmekte aşağıdaki kaynakdan gerekli ve detaylı anlatım mevcut
https://shopier.github.io/