За тестовый MID я могу заплатить успешно, но когда я пытаюсь оживить его с помощью моего производственного ключа и производственного MID оплаты, я получаю сообщение об ошибке «Недействительно: этот MID недоступен в нашей промежуточной среде», и я используя 'https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=' URL-адрес обратного вызова для производства в качестве инструкции для paytm, но я все еще не могу произвести оплату в производственной среде. Ниже мой код флаттера:
class _MyAppState extends State<MyApp> {
String payment_response = '';
final String M_ID = ""; //Production MID
final String CHANNEL_ID = "WAP";// type here your channel id given by paytm
final String INDUSTRY_TYPE_ID = "Retail"; // type here your industry type id given by paytm
final String WEBSITE = "DEFAULT"; //for production
TextEditingController amountController = new TextEditingController();
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Paytm example app'),
),
body: Padding(
padding: EdgeInsets.all(10.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextFormField(
controller: amountController,
decoration: InputDecoration(
hintText: 'Enter Amount',
prefix: Text('Rs. '),
),
keyboardType: TextInputType.number,
),
SizedBox(height: 5.0,),
RaisedButton(
onPressed: () {
//Firstly Generate CheckSum bcoz Paytm Require this
generateCheckSum();
},
color: Colors.blue,
child: Text(
"Pay Now",
style: TextStyle(color: Colors.white),
),
),
SizedBox(height: 20.0,),
Text('Response: $payment_response\n'),
],
),
),
),
);
}
void generateCheckSum() async {
var url =
'https://promiseacademy.co.in/flutterapp/paytm/generateChecksum.php';
String orderId = DateTime
.now()
.millisecondsSinceEpoch
.toString();
String callBackUrl =
'https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=' +
orderId;
//Please use your parameters here
//CHANNEL_ID etc provided to you by paytm
final response = await http.post(url, headers: {
"Content-Type": "application/x-www-form-urlencoded"
}, body: {
"M_ID": M_ID,
"CHANNEL_ID": CHANNEL_ID,
'INDUSTRY_TYPE_ID': INDUSTRY_TYPE_ID,
'WEBSITE': WEBSITE,
'TXN_AMOUNT': amountController.text,
'CALLBACK_URL': callBackUrl,
'ORDER_ID': orderId,
'CUST_ID': '1',
});
//for Testing(Stagging) use this
//https://securegw-stage.paytm.in/theia/paytmCallback?ORDER_ID=
//https://securegw.paytm.in/theia/paytmCallback?ORDER_ID=
if (response.statusCode == 200) {
var result = json.decode(response.body);
print("Response :" + response.body + "\nchecksumhash:" + result['CHECKSUMHASH']);
var paytmResponse = Paytm.startPaytmPayment(
true,
M_ID,
orderId,
"1",
CHANNEL_ID,
amountController.text,
WEBSITE,
callBackUrl,
INDUSTRY_TYPE_ID,
result['CHECKSUMHASH']);
paytmResponse.then((value) {
setState(() {
payment_response = value.toString();
});
});
}
else{
print(response.statusCode);
}
}
}