function cx($ordernumber) { $msg = ''; //需要填入的部分 $req['version'] = upmp_config::$version; // 版本号 $req['charset'] = upmp_config::$charset; // 字符编码 $req['transType'] = "01"; // 交易类型 $req['merId'] = upmp_config::$mer_id; // 商户代码 $req['orderTime'] = "20140731"; // 交易开始日期时间yyyyMMddHHmmss或yyyyMMdd $req['orderNumber'] = $ordernumber; // 订单号 // 保留域填充方法 $merReserved['test'] = "test"; $req['merReserved'] = UpmpService::buildReserved($merReserved); // 商户保留域(可选) $msg .= http_build_query($req); $msg .= "======="; $resp = array(); $validResp = UpmpService::query($req, $resp); // 商户的业务逻辑 if ($validResp) { $msg .= "\n"; $msg .= http_build_query($resp); $path = dirname(STATICPATH) . "/application/logs/" . date("Ym1111"); if (!is_dir($path)) { mkdir($path, 0777); } $filename = $path . "/" . date("d") . ".txt"; $file = fopen($filename, "a+"); fwrite($file, $msg); fclose($file); // 服务器应答签名验证成功 print_r($resp); } else { // 服务器应答签名验证失败 print_r($resp); } }
$mer_id = $_GET['merid']; $security_key = $_GET['securitykey']; $tradeurl = $_GET['tradeurl']; $queryurl = $_GET['queryurl']; $orderTime = $_GET['orderTime']; $orderNumber = $_GET['orderNumber']; $mer_id = $mer_id ? $mer_id : upmp_config::$mer_id; $req['version'] = upmp_config::$version; // 版本号 $req['charset'] = upmp_config::$charset; // 字符编码 $req['transType'] = "01"; // 交易类型 $req['merId'] = $mer_id; // 商户代码 $req['orderTime'] = $orderTime; // 交易开始日期时间yyyyMMddHHmmss或yyyyMMdd $req['orderNumber'] = $orderNumber; // 订单号 $merReserved['test'] = "test"; // 商户保留域(可选) $req['merReserved'] = UpmpService::buildReserved($merReserved); $resp = array(); $logger->info("process upmp_query_v2" . print_r($req, true)); $validResp = UpmpService::query($req, $resp); $logger->info("process upmp_query_v2 (" . $validResp . ", " . print_r($resp, true) . ")"); if ($validResp && $resp['respCode'] == '00' && $resp['transStatus'] == '00') { echo "00"; } else { echo "03"; }
// 通知URL $req['frontEndUrl'] = upmp_config::$mer_front_end_url; // 前台通知URL(可选) $req['orderDescription'] = "订单描述"; // 订单描述(可选) $req['orderTime'] = date("YmdHis"); // 交易开始日期时间yyyyMMddHHmmss $req['orderTimeout'] = ""; // 订单超时时间yyyyMMddHHmmss(可选) $req['orderNumber'] = date("YmdHiss"); //订单号(商户根据自己需要生成订单号) $req['orderAmount'] = "1"; // 订单金额 $req['orderCurrency'] = "156"; // 交易币种(可选) $req['reqReserved'] = "透传信息"; // 请求方保留域(可选,用于透传商户信息) // 保留域填充方法 $merReserved['test'] = "test"; $req['merReserved'] = UpmpService::buildReserved($merReserved); // 商户保留域(可选) $resp = array(); $validResp = UpmpService::trade($req, $resp); // 商户的业务逻辑 if ($validResp) { // 服务器应答签名验证成功 print_r($resp); } else { // 服务器应答签名验证失败 print_r($resp); }
/*银联后台通知*/ header('Content-Type:text/html;charset=utf-8'); //print_r($_SERVER['DOCUMENT_ROOT']."/weTall/wapupay/lib/upmp_service.php");exit; require_once "lib/upmp_service.php"; require_once "data/config/db.php"; //var_dump($arr);exit; // 写入文件 $filename = 'notify_back.txt'; $fh = fopen($filename, "w"); fwrite($fh, "异步通知报文:\r\n"); //异步通知报文 foreach ($_POST as $key => $value) { fwrite($fh, $key . "=" . $value . "&"); } fwrite($fh, "\r\n\r\n"); if (UpmpService::verifySignature($_POST)) { // 服务器签名验证成功 //请在这里加上商户的业务逻辑程序代码 //获取通知返回参数,可参考接口文档中通知参数列表(以下仅供参考) $transStatus = $_POST['transStatus']; // 交易状态 if ("" != $transStatus && "00" == $transStatus) { // 交易处理成功 $alldingdanhao = $_POST['orderNumber']; //取得支付号 fwrite($fh, $alldingdanhao . "\r\n"); //$connection = mysqli_connect($arr["DB_HOST"], $arr["DB_USER"], $arr["DB_PWD"], $arr["DB_NAME"], $arr["DB_PORT"]); //$cursor = mysqli_query($connection, $Q); $mysqli = new mysqli($arr["DB_HOST"], $arr["DB_USER"], $arr["DB_PWD"], $arr["DB_NAME"], $arr["DB_PORT"]); $query = "SELECT * FROM " . $arr["DB_PREFIX"] . "order_merge WHERE mergeid='" . $alldingdanhao . "'"; fwrite($fh, $query . "\r\n");
function postbank() { //需要填入的部分 $req['version'] = upmp_config::$version; // 版本号 $req['charset'] = upmp_config::$charset; // 字符编码 $req['transType'] = "01"; // 交易类型 $req['merId'] = upmp_config::$mer_id; // 商户代码 $req['backEndUrl'] = upmp_config::$mer_back_end_url; // 通知URL $req['frontEndUrl'] = upmp_config::$mer_front_end_url; // 前台通知URL(可选) $req['orderDescription'] = "订单描述"; // 订单描述(可选) $req['orderTime'] = date("YmdHis"); // 交易开始日期时间yyyyMMddHHmmss $req['orderTimeout'] = ""; // 订单超时时间yyyyMMddHHmmss(可选) $req['orderNumber'] = date("YmdHiss"); //订单号(商户根据自己需要生成订单号) $req['orderAmount'] = "1"; // 订单金额 $req['orderCurrency'] = "156"; // 交易币种(可选) $req['reqReserved'] = "透传信息"; // 请求方保留域(可选,用于透传商户信息) // 保留域填充方法 $merReserved['test'] = "test"; $req['merReserved'] = UpmpService::buildReserved($merReserved); // 商户保留域(可选) $resp = array(); $validResp = UpmpService::trade($req, $resp); // 商户的业务逻辑 if ($validResp) { // 服务器应答签名验证成功 $tn = $resp['tn']; $resultURL = upmp_config::$mer_front_end_url; $usetestmode = 'true'; $paydata = urlencode(base64_encode("tn=" . $tn . ",resultURL=" . urlencode($resultURL . "?argName=") . ",usetestmode=true")); $url = "uppay://uppayservice/?style=token&paydata=" . $paydata; header("Content-type:text/html;charset=utf-8"); $html = "<a href='" . $url . "'>提交</a>"; //$msg="<script> window.location.href='".$url."' </script>"; echo $html; } else { // 服务器应答签名验证失败 print_r($resp); } }
public function orderUpmpQuery($num = "") { $zhifuhao = $num; if ($zhifuhao != "") { header('Content-Type:text/html;charset=utf-8'); require_once "wapupay/lib/upmp_service.php"; //需要填入的部分 $req['version'] = upmp_config::$version; // 版本号 $req['charset'] = upmp_config::$charset; // 字符编码 $req['transType'] = "01"; // 交易类型 $req['merId'] = upmp_config::$mer_id; // 商户代码 $req['orderTime'] = substr($zhifuhao, 0, 14); // 交易开始日期时间yyyyMMddHHmmss或yyyyMMdd $req['orderNumber'] = $zhifuhao; // 保留域填充方法 $merReserved['test'] = "test"; $req['merReserved'] = UpmpService::buildReserved($merReserved); // 商户保留域(可选) $resp = array(); $validResp = UpmpService::query($req, $resp); // 商户的业务逻辑 if ($validResp) { // 服务器应答签名验证成功 // 写入文件 $filename = 'order_query.txt'; $fh = fopen($filename, "w"); //请求报文 fwrite($fh, "订单查询请求报文:" . $this->transUpmpInfo($req) . "\r\n"); //应答报文 fwrite($fh, "订单查询应答报文:" . $this->transUpmpInfo($resp) . "\r\n"); //关闭文件 fclose($fh); if ("" != $resp['transStatus'] && "00" == $resp['transStatus']) { return "paid"; } else { return "not_paid"; } } else { // 服务器应答签名验证失败 //echo "failture"."<br>"; return "服务器应答签名验证失败"; } } else { return "参数为空"; } }
/** * 生成支付代码 * @param array $order 订单信息 * @param array $payment 支付方式信息 */ function query($order, $payment, $order_time) { $orderNumber = $order['order_sn']; //需要填入的部分 $req['version'] = upmp_config::$version; // 版本号 $req['charset'] = upmp_config::$charset; // 字符编码 $req['transType'] = "01"; // 交易类型 $req['merId'] = upmp_config::$mer_id; // 商户代码 $req['orderTime'] = $order_time; // 交易开始日期时间yyyyMMddHHmmss或yyyyMMdd $req['orderNumber'] = $orderNumber; // 订单号 // 保留域填充方法 $merReserved['test'] = "test"; $req['merReserved'] = UpmpService::buildReserved($merReserved); // 商户保留域(可选) $resp = array(); $validResp = UpmpService::query($req, $resp); // 商户的业务逻辑 if ($validResp) { // 服务器应答签名验证成功 return $resp; } else { // 服务器应答签名验证失败 return $resp; } }
header('Content-Type:text/html;charset=utf-8'); require "../include/common.inc.php"; require_once "./lib/upmp_service.php"; $db = new DB_test(); // $reqcontext = file_get_contents("php://input"); $reqcontext = file_get_contents('php://input', 'r'); //$reqcontext = ($raw_post_data == $HTTP_RAW_POST_DATA) ? 1 : 0; echo $reqcontext; echo var_dump($reqcontext); exit; $authorid = $authorid + 0; $file = "./" . date('Y-m-d') . "-log" . ".txt"; $filehandle = fopen($file, "a"); fwrite($filehandle, "\r\n======响应内容:\r\n" . $reqcontext . "\r\n\r\n" . $returnval . "\r\n\r\n<!--------------结束------------>\r\n\r\n\r\n"); fclose($filehandle); if (UpmpService::verifySignature($reqcontext)) { // 服务器签名验证成功 //请在这里加上商户的业务逻辑程序代码 //获取通知返回参数,可参考接口文档中通知参数列表(以下仅供参考) $transStatus = $reqcontext['transStatus']; // 交易状态 if ("" != $transStatus && "00" == $transStatus) { $bkordernumber = $reqcontext['orderNumber']; //BankPayInfo::bankpaystatus($bkordernumber,$bkordernumber,'coupon'); $query = "update tb_couponsale set fd_couponsale_payrq = '{$transtatus}' where fd_couponsale_bkordernumber = '{$bkordernumber}' "; $db->query($query); $query = "update tb_agentpaymoneylist set fd_agpm_payrq ='{$transtatus}',fd_agpm_datetime = now() where fd_agpm_bkordernumber = '{$bkordernumber}'"; $db->query($query); $query = "update tb_creditcardglist set fd_ccglist_payrq ='{$transtatus}',fd_ccglist_paydate = '{$nowdate}' where fd_ccglist_bkordernumber = '{$bkordernumber}'"; $db->query($query); $query = "update tb_transfermoneyglist set fd_tfmglist_payrq ='{$transtatus}' ,fd_tfmglist_paydate ='{$nowdate}' \n\t\t\t\t where fd_tfmglist_bkordernumber = '{$bkordernumber}'";