public function respond() { $v_oid = trim($_POST['v_oid']); //订单编号 $v_pmode = trim($_POST['v_pmode']); //支付方式 $v_pstatus = trim($_POST['v_pstatus']); //支付状态 20(表示支付成功)30(表示支付失败) $v_pstring = trim($_POST['v_pstring']); //支付结果信息 $v_amount = trim($_POST['v_amount']); //订单总金额 $v_moneytype = trim($_POST['v_moneytype']); //币种 $remark1 = trim($_POST['remark1']); //备注字段1 $remark2 = trim($_POST['remark2']); //备注字段2 $v_md5str = trim($_POST['v_md5str']); //订单MD5校验码 /** * 重新计算md5的值 */ $key = $this->config['chinabank_key']; $md5string = strtoupper(md5($v_oid . $v_pstatus . $v_amount . $v_moneytype . $key)); /* 检查秘钥是否正确 */ if ($v_md5str == $md5string) { if ($v_pstatus == '20') { order_pay_status($v_oid, '2'); return true; } } else { return false; } }
public function respond() { if (!empty($_POST)) { foreach ($_POST as $key => $data) { $_GET[$key] = $data; } } $seller_email = rawurldecode($_GET['seller_email']); //$order_sn = str_replace($_GET['subject'], '', $_GET['out_trade_no']); $order_sn = trim($_GET['out_trade_no']); $record = intval($_GET['record']); $total_fee = get_safe_replace($_GET['total_fee']); /* 检查数字签名是否正确 */ ksort($_GET); reset($_GET); $sign = ''; foreach ($_GET as $key => $val) { if ($key != 'sign' && $key != 'sign_type' && $key != 'code' && $key != 'g' && $key != 'm' && $key != 'a' && $key != 'record') { $sign .= "{$key}={$val}&"; } } $sign = substr($sign, 0, -1) . $this->config['alipay_key']; //$sign = substr($sign, 0, -1) . ALIPAY_AUTH; if (md5($sign) != $_GET['sign']) { return false; } if ($_GET['trade_status'] == 'WAIT_SELLER_SEND_GOODS' || $_GET['trade_status'] == 'WAIT_BUYER_CONFIRM_GOODS' || $_GET['trade_status'] == 'WAIT_BUYER_PAY') { /* 改变订单状态 进行中*/ return order_pay_status($order_sn, '1', $total_fee, $record); } elseif ($_GET['trade_status'] == 'TRADE_FINISHED') { /* 改变订单状态 */ return order_pay_status($order_sn, '2', $total_fee, $record); } elseif ($_GET['trade_status'] == 'TRADE_SUCCESS') { /* 改变订单状态 即时交易成功*/ return order_pay_status($order_sn, '2', $total_fee, $record); } else { return false; } }
public function respond() { $url = $this->config['gateway_url']; $record = intval($_GET['record']); //Parse url $web = parse_url($url); //build post string foreach ($_POST as $i => $v) { $postdata .= $i . "=" . urlencode($v) . "&"; } $postdata .= "cmd=_notify-validate"; //Set the port number if ($web['scheme'] == "https") { $web['port'] = "443"; $ssl = "ssl://"; } else { $web['port'] = "80"; } //Create paypal connection $fp = @fsockopen($ssl . $web['host'], $web['port'], $errnum, $errstr, 30); if (!$fp) { echo "{$errnum}: {$errstr}"; exit; } else { fputs($fp, "POST {$web['path']} HTTP/1.1\r\n"); fputs($fp, "Host: {$web['host']}\r\n"); fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n"); fputs($fp, "Content-length: " . strlen($postdata) . "\r\n"); fputs($fp, "Connection: close\r\n\r\n"); fputs($fp, $postdata . "\r\n\r\n"); while (!feof($fp)) { $info[] = @fgets($fp, 1024); } fclose($fp); $result = implode(",", $info); } if (eregi("VERIFIED", $result)) { $invoice = trim(stripslashes($_POST['invoice'])); $amount = trim(stripslashes(@$_POST['amount'])); $payment_method = trim(stripslashes(@$_POST['payment_method'])); // deprecated $payment_type = trim(stripslashes(@$_POST['payment_type'])); // Can be USD, GBP, EUR, CAD, JPY $currency_code = trim(stripslashes($_POST['mc_currency'])); $payer_email = trim(stripslashes($_POST['payer_email'])); $business = trim(stripslashes($_POST['business'])); $item_name = trim(stripslashes($_POST['item_name'])); $item_number = trim(stripslashes(@$_POST['item_number'])); $txn_id = trim(stripslashes($_POST['txn_id'])); $receiver_email = trim(stripslashes($_POST['receiver_email'])); $payment_status = trim(stripslashes($_POST['payment_status'])); $mc_gross = trim(stripslashes($_POST['mc_gross'])); $order_sn = trim(stripslashes(@$_POST['item_number'])); //$Order = M('Order')->where("sn='$order_sn'")->find(); if (eregi("Completed", $payment_status)) { return order_pay_status($order_sn, 2, $mc_gross, $record); } elseif (eregi("Pending", $payment_status)) { return order_pay_status($order_sn, 1, $mc_gross, $record); } } }