def getDemoHtml(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["frontUrl"] = SDKConfig().frontUrl req["backUrl"] = SDKConfig().backUrl req["txnType"] = "01" req["txnSubType"] = "01" req["bizType"] = "000201" req["channelType"] = "07" req["currencyCode"] = "156" req["txnAmt"] = "1000" req["merId"] = "777290058110048" req["orderId"] = datetime.now().strftime('%Y%m%d%H%M%S') req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["accessType"] = "0" # 签名示例 req = AcpService.sign(req) url = SDKConfig().frontTransUrl # 前台自提交表单示例 resp = AcpService.createAutoFormHtml(req, url) return resp
def get_payment_form(order_id): time_now = datetime.now().strftime('%Y%m%d%H%M%S') time_out = datetime.now() + timedelta(minutes=15) time_out = time_out.strftime('%Y%m%d%H%M%S') req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["txnType"] = "01" req["txnSubType"] = "01" req["bizType"] = "000202" req["frontUrl"] = SDKConfig().frontUrl req["backUrl"] = SDKConfig().backUrl req["signMethod"] = SDKConfig().signMethod req["channelType"] = "07" req["accessType"] = "0" req["currencyCode"] = "156" req["merId"] = get_payment_merchant_id() req["orderId"] = order_id req["txnAmt"] = str(get_payment_amount(order_id)) req["txnTime"] = time_now req['payTimeout'] = time_out # 签名示例 req_params = AcpService.sign(req) req_url = SDKConfig().frontTransUrl return req_params, req_url
def get_query_form(order_id): payment = get_payment_info(order_id) if not payment: return None, None txnTime = payment.payment_time or datetime.fromtimestamp(payment.created_time).strftime('%Y%m%d%H%M%S') req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "00" req["txnSubType"] = "00" req["bizType"] = "000000" req["accessType"] = "0" req["channelType"] = "07" req["merId"] = get_payment_merchant_id() req["orderId"] = order_id req["txnTime"] = txnTime # 签名示例 req_params = AcpService.sign(req) req_url = SDKConfig().singleQueryUrl return req_params, req_url
def get_refund_form(unionpay, refund_id, refund_amount): time_now = datetime.now().strftime('%Y%m%d%H%M%S') req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "04" req["txnSubType"] = "00" req["bizType"] = "000201" req["accessType"] = "0" req["channelType"] = "07" req["backUrl"] = SDKConfig().backUrl req["merId"] = get_payment_merchant_id() req["orderId"] = refund_id req['origQryId'] = unionpay.unionpay_id req["txnTime"] = time_now req["txnAmt"] = str(refund_amount) # 签名示例 req_params = AcpService.sign(req) req_url = SDKConfig().backTransUrl return req_params, req_url
def trade(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = "01" req["txnType"] = "78" req["txnSubType"] = "00" req["bizType"] = "000301" req["channelType"] = "07" req["merId"] = "777290058110097" req["orderId"] = datetime.now().strftime('%Y%m%d%H%M%S') req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["accessType"] = "0" req["accNo"] = AcpService.encryptData("6226090000000048") req["encryptCertId"] = AcpService.getEncryptCertId() # 签名示例 req = AcpService.sign(req) url = SDKConfig().backTransUrl # post示例 resp = AcpService.post(req, url) result = "请求报文:" + map2str(req) + "<br>\n" result = result + "应答报文:" + map2str(resp) + "<br>\n" # 验签示例 result = result + "验签成功<br>\n" if AcpService.validate( resp) else "验签失败<br>\n" if "respCode" in resp: # 取应答报文里的参数的示例 result = result + "respCode=" + resp["respCode"] + "<br>\n" result = result + "respMsg=" + resp["respMsg"] + "<br>\n" # 解密示例 if "customerInfo" in resp: customerInfo = AcpService.parseCustomerInfo( resp["customerInfo"], SDKConfig().signCertPath, SDKConfig().signCertPwd) if "phoneNo" in customerInfo: result = result + "phoneNo=" + customerInfo[ "phoneNo"] + "<br>\n" return result
def demoTrade(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "95" req["txnSubType"] = "00" req["bizType"] = "000000" req["channelType"] = "07" req["accessType"] = "0" req["certType"] = "01" req["merId"] = "777290058110097" req["orderId"] = datetime.now().strftime('%Y%m%d%H%M%S') req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') # 签名示例 req = AcpService.sign(req) url = SDKConfig().backTransUrl # post示例 resp = AcpService.post(req, url) result = "请求报文:" + map2str(req) + "<br>\n" result = result + "应答报文:" + map2str(resp) + "<br>\n" # 验签示例 result = result + "验签成功<br>\n" if AcpService.validate( resp) else "验签失败<br>\n" if "respCode" in resp: # 取应答报文里的参数的示例 result = result + "respCode=" + resp["respCode"] + "<br>\n" result = result + "respMsg=" + resp["respMsg"] + "<br>\n" if resp["respCode"] == "00": resultCode = AcpService.updateEncryptCert(resp) if resultCode == 1: result += "加密公钥更新成功" + "<br>\n" elif resultCode == 0: result += "加密公钥无更新" + "<br>\n" else: result += "加密公钥更新失败" + "<br>\n" return result
def trade(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "21" req["txnSubType"] = "03" req["bizType"] = "000401" req["accessType"] = "0" req["channelType"] = "07" req["merId"] = "777290058110097" req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["batchNo"] = "0001" req["totalQty"] = "10" req["totalAmt"] = "1000" req["fileContent"] = AcpService.enCodeFileContent("./files/bat.txt") # 签名示例 req = AcpService.sign(req) url = SDKConfig().batchTransUrl # post示例 resp = AcpService.post(req, url) result = "请求报文:" + map2str(req) + "<br>\n" result = result + "应答报文:" + map2str(resp) + "<br>\n" # 验签示例 result += ("验签成功<br>\n" if AcpService.validate(resp) else "验签失败<br>\n") if "respCode" in resp: # 取应答报文里的参数的示例 result = result + "respCode=" + resp["respCode"] + "<br>\n" result = result + "respMsg=" + resp["respMsg"] + "<br>\n" if resp["respCode"] == "00": result += "成功<br>\n" else: result += "失败<br>\n" return result
def trade(): time_now = datetime.now().strftime('%Y%m%d%H%M%S') req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "04" req["txnSubType"] = "00" req["bizType"] = "000201" req["accessType"] = "0" req["channelType"] = "07" req["backUrl"] = SDKConfig().backUrl req["orderId"] = time_now req["merId"] = "777290058110048" req["origQryId"] = "871803200930040336758" req["txnTime"] = time_now req["txnAmt"] = "100" # 签名示例 req = AcpService.sign(req) url = SDKConfig().backTransUrl # 后台自提交表单示例 resp = AcpService.post(req, url) if not AcpService.validate(resp): logging.error("回复报文验证失败") return jsonify({'status': 'error', 'error': 'not validate'}) respCode = resp['respCode'] if respCode == "00": logging.info("退款受理成功!") return jsonify({'status': 'ok', 'data': resp}) if respCode == "03" or respCode == "04" or respCode == "05": logging.warning("退款受理超时") return jsonify({'status': 'error', 'error': '退款受理超时'}) else: logging.error("退款受理失败") return jsonify({'status': 'error', 'error': '退款受理失败', 'detail': resp})
def trade(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "76" req["txnSubType"] = "01" req["bizType"] = "000000" req["accessType"] = "0" req["fileType"] = "00" req["merId"] = "700000000000001" req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["settleDate"] = "0119" # 签名示例 req = AcpService.sign(req) url = SDKConfig().fileTransUrl # post示例 resp = AcpService.post(req, url) result = "请求报文:" + map2str(req) + "<br>\n" result = result + "应答报文:" + map2str(resp) + "<br>\n" # 验签示例 result = result + ("验签成功<br>\n" if AcpService.validate(resp) else "验签失败<br>\n") if "respCode" in resp: # 取应答报文里的参数的示例 result = result + "respCode=" + resp["respCode"] + "<br>\n" result = result + "respMsg=" + resp["respMsg"] + "<br>\n" if resp["respCode"] == "00": dir = "./files/" # 先建立好文件夹哦 result += "文件保存到:" + dir + ("成功<br>\n" if AcpService.deCodeFileContent( resp, dir) else "失败<br>\n") result += analyzeFile(dir, resp["fileName"]) return result
def getDemoHtml(): accNo = "6226090000000048" customerInfo = {} customerInfo['phoneNo'] = '18100000000' customerInfo['certifTp'] = '01' customerInfo['certifId'] = '510265790128303' customerInfo['customerNm'] = '张三' customerInfo['cvn2'] = '248' customerInfo['expired'] = '1912' req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["frontUrl"] = SDKConfig().frontUrl req["backUrl"] = SDKConfig().backUrl req["txnType"] = "79" req["txnSubType"] = "00" req["bizType"] = "000301" req["channelType"] = "07" req["merId"] = "777290058110097" req["orderId"] = datetime.now().strftime('%Y%m%d%H%M%S') req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["accessType"] = "0" # accNo、customerInfo组装示例 req["accNo"] = AcpService.encryptData(accNo) req["customerInfo"] = AcpService.getCustomerInfoWithEncrypt(customerInfo) req["encryptCertId"] = AcpService.getEncryptCertId() # 签名示例 req = AcpService.sign(req) url = SDKConfig().frontTransUrl # 前台自提交表单示例 resp = AcpService.createAutoFormHtml(req, url) return resp
def trade(): req = {} req["version"] = SDKConfig().version req["encoding"] = SDKConfig().encoding req["signMethod"] = SDKConfig().signMethod req["txnType"] = "22" req["txnSubType"] = "03" req["bizType"] = "000401" req["accessType"] = "0" req["channelType"] = "07" req["merId"] = "777290058110097" req["txnTime"] = datetime.now().strftime('%Y%m%d%H%M%S') req["batchNo"] = "0001" # 签名示例 req = AcpService.sign(req) url = SDKConfig().batchTransUrl # post示例 resp = AcpService.post(req, url) result = "请求报文:" + map2str(req) + "<br>\n" result += "应答报文:" + map2str(resp) + "<br>\n" # 验签示例 result += ("验签成功<br>\n" if AcpService.validate(resp) else "验签失败<br>\n") if "respCode" in resp: # 取应答报文里的参数的示例 result += "respCode=" + resp["respCode"] + "<br>\n" result += "respMsg=" + resp["respMsg"] + "<br>\n" if resp["respCode"] == "00": path = "./files/" # 先建立好文件夹哦 result += "文件保存到:" \ + path + ("成功<br>\n" if AcpService.deCodeFileContent(resp, path) else "失败<br>\n") return result