Rev 13753 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/pythonimport optparseimport sysimport datetimefrom datetime import timedeltafrom elixir import *from sqlalchemy.sql import funcimport urllibimport httplibfrom shop2020.utils.EmailAttachmentSender import mail, mail_htmlfrom shop2020.model.v1.order.impl.model.UserWalletHistory import UserWalletHistoryfrom shop2020.model.v1.order.impl.model.UserWallet import UserWalletfrom shop2020.utils.Utils import to_java_date, to_py_datefrom shop2020.clients.PaymentClient import PaymentClientif __name__ == '__main__' and __package__ is None:import ossys.path.insert(0, os.getcwd())from datetime import date, timedeltafrom shop2020.clients.HelperClient import HelperClientfrom shop2020.clients.TransactionClient import TransactionClientfrom shop2020.thriftpy.model.v1.order.ttypes import RechargeOrderStatus,\OrderTypefrom shop2020.model.v1.order.impl.DataAccessors import get_recharge_orders_for_status, update_recharge_order_status,\update_recharge_transaction_status, get_next_invoice_numberfrom shop2020.model.v1.order.impl import DataServicefrom shop2020.model.v1.order.impl.DataService import RechargeTransaction, HotspotStore,\WalletForCompany, WalletHistoryForCompany, RechargeCollection, Company, HotspotServiceMatrix,\RechargeVoucherTrackerfrom shop2020.model.v1.order.impl.model.RechargeOrder import RechargeOrderfrom shop2020.model.v1.order.impl.RechargeService import checkTransactionStatus, getRefunds, getBalancefrom sqlalchemy.sql.expression import and_, or_, desc, not_, distinct, cast, betweendef main():paymentrecon()def paymentrecon():today = datetime.datetime.now()dateTo = datetime.datetime(today.year, today.month, today.day)dateFrom = dateTo - datetime.timedelta(days = 7)pc = PaymentClient().get_client()hdfcPayments = pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 0, 1) + pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 3, 1)mail_data = "Problem\tPaymentId\tTransactionId\tAmount\tDateTime\tIsDigital\tPaymentGateway"for payment in hdfcPayments:if payment.isDigital:gstatus = pc.getPaymentStatusAtGateway(payment.merchantTxnId, payment.amount, payment.isDigital)if gstatus in(0,3):continueelse:print "Problem", str(payment.paymentId), str(payment.merchantTxnId), str(payment.amount), str(payment.isDigital)mail_data += "\nProblem\t" + str(payment.paymentId) + "\t" + str(payment.merchantTxnId) + "\t" + str(payment.amount) + "\t" + str(to_py_date(payment.initTimestamp)) + "\t" + str(payment.isDigital)+"\tHDFC"#pc.refundPayment(payment.merchantTxnId, payment.amount, payment.isDigital)payuPayments = pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 0, 20) + pc.getPayments(to_java_date(dateFrom), to_java_date(dateTo), 3, 20)for payment in payuPayments:if payment.isDigital:gstatus = pc.getPaymentStatusAtGateway(payment.merchantTxnId, payment.amount, payment.isDigital)if gstatus in(0,3):continueelse:print "Problem", str(payment.paymentId), str(payment.merchantTxnId), str(payment.amount), str(payment.isDigital)mail_data += "\nProblem\t" + str(payment.paymentId) + "\t" + str(payment.merchantTxnId) + "\t" + str(payment.amount) + "\t" + str(to_py_date(payment.initTimestamp)) + "\t" + str(payment.isDigital)+"\tPayU"#pc.refundPayment(payment.merchantTxnId, payment.amount, payment.isDigital)mail("adwords@shop2020.in", "adwords_shop2020", ["amit.sirohi@shop2020.in","amit.gupta@shop2020.in","manish.sharma@shop2020.in"], "HDFC-PayU Payment Status Mismatch", mail_data, [], [], [])if __name__ == '__main__':main()