コード例 #1
0
ファイル: secureUtil.php プロジェクト: xingluxin/jianshen
/**
 * 根据证书ID 加载 证书
 *
 * @param unknown_type $certId        	
 * @return string NULL
 */
function getPulbicKeyByCertId($certId)
{
    $log = new \PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    $log->LogInfo('报文返回的证书ID>' . $certId);
    // 证书目录
    $cert_dir = SDK_VERIFY_CERT_DIR;
    $log->LogInfo('验证签名证书目录 :>' . $cert_dir);
    $handle = opendir($cert_dir);
    if ($handle) {
        while ($file = readdir($handle)) {
            clearstatcache();
            $filePath = $cert_dir . '/' . $file;
            if (is_file($filePath)) {
                if (pathinfo($file, PATHINFO_EXTENSION) == 'cer') {
                    if (getCertIdByCerPath($filePath) == $certId) {
                        closedir($handle);
                        $log->LogInfo('加载验签证书成功');
                        return getPublicKey($filePath);
                    }
                }
            }
        }
        $log->LogInfo('没有找到证书ID为[' . $certId . ']的证书');
    } else {
        $log->LogInfo('证书目录 ' . $cert_dir . '不正确');
    }
    closedir($handle);
    return null;
}
コード例 #2
0
ファイル: UnionPay.php プロジェクト: niujie123/myself
 public function searchOrder($attr, $type = "bank")
 {
     $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
     $log->LogInfo("============处理前台请求开始===============");
     // 初始化日志
     if ($type == "bank") {
         $merId = '898110260110001';
     } else {
         $merId = '898110260110002';
     }
     $attr['txnTime'] = date("YmdHis", strtotime($attr['trade_time']));
     $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => $this->secureUtil->getSignCertId($type), 'signMethod' => '01', 'txnType' => '00', 'txnSubType' => '00', 'bizType' => '000000', 'accessType' => '0', 'channelType' => '07', 'orderId' => $attr['trade_code'], 'merId' => $merId, 'txnTime' => $attr['txnTime']);
     //        print_r($params);
     //        exit;
     // 签名
     $this->secureUtil->sign($params, $type);
     // 前台请求地址
     $front_uri = SDK_SINGLE_QUERY_URL;
     $log->LogInfo("前台请求地址为>" . $front_uri);
     // 构造 自动提交的表单
     $html_form = create_html($params, $front_uri);
     $api_client = new FApiClient();
     $res = $api_client->unionPaySend($front_uri, $params, "post");
     $log->LogInfo("-------前台交易自动提交表单>--begin----");
     $log->LogInfo($html_form);
     $log->LogInfo("-------前台交易自动提交表单>--end-------");
     $log->LogInfo("============处理前台请求 结束===========");
     //echo $html_form;
     return $res;
 }
コード例 #3
0
ファイル: secureUtil.php プロジェクト: BruceJi/fanwe
/**
 * 验签
 *
 * @param String $params_str        	
 * @param String $signature_str        	
 */
function verify($params)
{
    global $log;
    // 初始化日志
    $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    // 公钥
    $public_key = getPulbicKeyByCertId($params['certId']);
    //	echo $public_key.'<br/>';
    // 签名串
    $signature_str = $params['signature'];
    unset($params['signature']);
    $params_str = coverParamsToString($params);
    $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    // 初始化日志
    $log->LogInfo('报文去[signature] key=val&串>' . $params_str);
    $signature = base64_decode($signature_str);
    //	echo date('Y-m-d',time());
    $params_sha1x16 = sha1($params_str, FALSE);
    $log->LogInfo('摘要shax16>' . $params_sha1x16);
    $isSuccess = openssl_verify($params_sha1x16, $signature, $public_key, OPENSSL_ALGO_SHA1);
    $log->LogInfo($isSuccess ? '验签成功' : '验签失败');
    return $isSuccess;
}
コード例 #4
0
ファイル: UnionPay.class.php プロジェクト: xingluxin/jianshen
 public function pay()
 {
     $merId = empty($this->merId) ? MER_ID : $this->merId;
     $orderId = empty($this->orderId) ? date('YmdHis') : $this->orderId;
     $frontUrl = empty($this->frontUrl) ? SDK_FRONT_NOTIFY_URL : $this->frontUrl;
     $backUrl = empty($this->backUrl) ? SDK_BACK_NOTIFY_URL : $this->backUrl;
     // 初始化日志
     $log = new \PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
     $log->LogInfo("============处理前台请求开始===============");
     // 初始化日志
     $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => $frontUrl, 'backUrl' => $backUrl, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => $merId, 'orderId' => $orderId, 'txnTime' => date('YmdHis'), 'txnAmt' => $this->txnAmt, 'currencyCode' => '156', 'defaultPayType' => '0001', 'reqReserved' => $this->reqReserved);
     // 签名
     sign($params);
     // 前台请求地址
     $front_uri = SDK_FRONT_TRANS_URL;
     $log->LogInfo("前台请求地址为>" . $front_uri);
     // 构造 自动提交的表单
     $html_form = create_html($params, $front_uri);
     $log->LogInfo("-------前台交易自动提交表单>--begin----");
     //$log->LogInfo ( $html_form );
     $log->LogInfo("-------前台交易自动提交表单>--end-------");
     $log->LogInfo("============处理前台请求 结束===========");
     echo $html_form;
 }
コード例 #5
0
<?php

header('Content-type:text/html;charset=GBK');
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/common.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/SDKConfig.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/secureUtil.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/httpClient.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/gbk/func/log.class.php';
/**
 * 文件传输类交易
 */
/**
 *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
 */
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("===========处理后台请求开始============");
$params = array('version' => '5.0.0', 'encoding' => 'GBK', 'certId' => getSignCertId(), 'txnType' => '76', 'signMethod' => '01', 'txnSubType' => '01', 'bizType' => '000000', 'accessType' => '0', 'merId' => '700000000000001', 'settleDate' => '0119', 'txnTime' => date('YmdHis'), 'fileType' => '00');
// 签名
sign($params);
echo "请求:" . getRequestParamString($params);
$log->LogInfo("后台请求地址为>" . SDK_FILE_QUERY_URL);
// 发送信息到后台
$result = sendHttpRequest($params, SDK_FILE_QUERY_URL);
$log->LogInfo("后台返回结果为>" . $result);
echo "应答:" . $result;
//返回结果展示
$result_arr = coverStringToArray($result);
echo verify($result_arr) ? '验签成功' : '验签失败';
// 处理文件,保存路径在配置文件中修改,注意预先建立文件夹并授读写权限
deal_file($result_arr);
コード例 #6
0
<?php 
header('Content-type:text/html;charset=utf-8');
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/common.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/SDKConfig.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/secureUtil.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/httpClient.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/log.class.php';
/**
 * 预授权-控件 
 */
/**
 *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
 */
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("============处理前台请求开始===============");
// 初始化日志
$params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'txnType' => '02', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => SDK_FRONT_NOTIFY_URL, 'backUrl' => SDK_BACK_NOTIFY_URL, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => '888888888888888', 'orderId' => date('YmdHis'), 'txnTime' => date('YmdHis'), 'txnAmt' => '100', 'currencyCode' => '156', 'orderDesc' => '订单描述', 'reqReserved' => ' 透传信息');
// 签名
sign($params);
echo "请求:" . getRequestParamString($params);
$log->LogInfo("后台请求地址为>" . SDK_App_Request_Url);
// 发送信息到后台
$result = sendHttpRequest($params, SDK_App_Request_Url);
$log->LogInfo("后台返回结果为>" . $result);
echo "应答:" . $result;
//返回结果展示
$result_arr = coverStringToArray($result);
echo verify($result_arr) ? '验签成功' : '验签失败';
?>
コード例 #7
0
<?php 
header('Content-type:text/html;charset=utf-8');
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/common.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/SDKConfig.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/secureUtil.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/log.class.php';
/**
 * 消费交易-前台 
 */
/**
 *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
 */
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("============处理前台请求开始===============");
// 初始化日志
$params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => SDK_FRONT_NOTIFY_URL, 'backUrl' => SDK_BACK_NOTIFY_URL, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => '888888888888888', 'orderId' => date('YmdHis'), 'txnTime' => date('YmdHis'), 'txnAmt' => '100', 'currencyCode' => '156', 'defaultPayType' => '0001', 'reqReserved' => ' 透传信息');
// 签名
sign($params);
// 前台请求地址
$front_uri = SDK_FRONT_TRANS_URL;
$log->LogInfo("前台请求地址为>" . $front_uri);
// 构造 自动提交的表单
$html_form = create_html($params, $front_uri);
$log->LogInfo("-------前台交易自动提交表单>--begin----");
$log->LogInfo($html_form);
$log->LogInfo("-------前台交易自动提交表单>--end-------");
$log->LogInfo("============处理前台请求 结束===========");
echo $html_form;
コード例 #8
0
 * 产品:跳转网关支付产品<br>
 * 交易:预授权完成:后台交易,有同步应答和后台通知应答<br>
 * 日期: 2015-09<br>
 * 版本: 1.0.0 
 * 版权: 中国银联<br>
 * 说明:以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考,不提供编码性能规范性等方面的保障<br>
 * 该接口参考文档位置:open.unionpay.com帮助中心 下载  产品接口规范  《网关支付产品接口规范》<br>
 *              《平台接入接口规范-第5部分-附录》(内包含应答码接口规范,全渠道平台银行名称-简码对照表)<br>
 * 测试过程中的如果遇到疑问或问题您可以:1)优先在open平台中查找答案:
 * 							        调试过程中的问题或其他问题请在 https://open.unionpay.com/ajweb/help/faq/list 帮助中心 FAQ 搜索解决方案
 *                             测试过程中产生的6位应答码问题疑问请在https://open.unionpay.com/ajweb/help/respCode/respCodeList 输入应答码搜索解决方案
 *                          2) 咨询在线人工支持: open.unionpay.com注册一个用户并登陆在右上角点击“在线客服”,咨询人工QQ测试支持。
 * 交易说明:1)以后台通知或交易状态查询交易(Form_6_5_Query)确定交易成功。建议发起查询交易的机制:可查询N次(不超过6次),每次时间间隔2N秒发起,即间隔1,2,4,8,16,32S查询(查询到03,04,05继续查询,否则终止查询)
 *       2)预授权完成交易必须在预授权交易30日内发起,否则预授权交易自动解冻。预授权完成金额可以是预授权金额的(0-115%]
 */
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
// 初始化日志
$log->LogInfo("===========处理后台请求开始============");
$params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'signMethod' => '01', 'txnType' => '03', 'txnSubType' => '00', 'bizType' => '000201', 'accessType' => '0', 'channelType' => '07', 'backUrl' => SDK_BACK_NOTIFY_URL, 'orderId' => $_POST["orderId"], 'merId' => $_POST["merId"], 'origQryId' => $_POST["origQryId"], 'txnTime' => $_POST["txnTime"], 'txnAmt' => $_POST["txnAmt"]);
sign($params);
// 签名
$url = SDK_BACK_TRANS_URL;
$log->LogInfo("后台请求地址为>" . $url);
$result = post($params, $url, $errMsg);
if (!$result) {
    //没收到200应答的情况
    printResult($url, $params, "");
    echo "POST请求失败:" . $errMsg;
    return;
}
$log->LogInfo("后台返回结果为>" . $result);
コード例 #9
0
ファイル: common.php プロジェクト: redtreelchao/wander-moon
/**
 * 处理报文中的文件
 *
 * @param unknown_type $params        	
 */
function deal_file($params)
{
    $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    if (isset($params['fileContent'])) {
        $log->LogInfo("---------处理后台报文返回的文件---------");
        $fileContent = $params['fileContent'];
        if (empty($fileContent)) {
            $log->LogInfo('文件内容为空');
        } else {
            // 文件内容 解压缩
            $content = gzuncompress(base64_decode($fileContent));
            $root = SDK_FILE_DOWN_PATH;
            $filePath = null;
            if (empty($params['fileName'])) {
                $log->LogInfo("文件名为空");
                $filePath = $root . $params['merId'] . '_' . $params['batchNo'] . '_' . $params['txnTime'] . '.txt';
            } else {
                $filePath = $root . $params['fileName'];
            }
            $handle = fopen($filePath, "w+");
            if (!is_writable($filePath)) {
                $log->LogInfo("文件:" . $filePath . "不可写,请检查!");
            } else {
                file_put_contents($filePath, $content);
                $log->LogInfo("文件位置 >:" . $filePath);
            }
            fclose($handle);
        }
    }
}
コード例 #10
0
ファイル: common.php プロジェクト: Lazybin/huisa
/**
 * 压缩文件 对应java deflate
 *
 * @param unknown_type $params        	
 */
function deflate_file(&$params)
{
    //global $log;
    $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    foreach ($_FILES as $file) {
        $log->LogInfo("---------处理文件---------");
        if (file_exists($file['tmp_name'])) {
            $params['fileName'] = $file['name'];
            $file_content = file_get_contents($file['tmp_name']);
            $file_content_deflate = gzcompress($file_content);
            $params['fileContent'] = base64_encode($file_content_deflate);
            $log->LogInfo("压缩后文件内容为>" . base64_encode($file_content_deflate));
        } else {
            $log->LogInfo(">>>>文件上传失败<<<<<");
        }
    }
}
コード例 #11
0
<?php

require_once '../load.php';
include_once SYS_PATH_WAP . '/unionpay/lib/SDKConfig.php';
include_once SYS_PATH_WAP . '/unionpay/lib/common.php';
include_once SYS_PATH_WAP . '/unionpay/lib/secureUtil.php';
include_once SYS_PATH_WAP . '/unionpay/lib/httpClient.php';
include_once SYS_PATH_WAP . '/unionpay/lib/log.class.php';
$rt = $app->action('shopping', 'get_order_pay_info');
$total_fee = intval($rt['order_amount'] * 100);
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
// 初始化日志
$params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => SDK_FRONT_NOTIFY_URL, 'backUrl' => SDK_BACK_NOTIFY_URL, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => '826340173990002', 'orderId' => $rt['order_sn'], 'txnTime' => date('YmdHis'), 'txnAmt' => $total_fee, 'currencyCode' => '156');
// 签名
sign($params);
/*手机WAP支付方式*/
// 构造 自动提交的表单
$html_form = create_html($params, SDK_FRONT_TRANS_URL);
$log->LogInfo("-------前台交易自动提交表单>--begin----");
$log->LogInfo($html_form);
$log->LogInfo("-------前台交易自动提交表单>--end-------");
echo $html_form;
コード例 #12
0
ファイル: BackReceive.php プロジェクト: 735579768/Ainiku
    ?>
</td>
			<td><?php 
    echo $val;
    ?>
</td>
		</tr>
			<?php 
}
?>
			<tr>
			<td width='30%'>验证签名</td>
			<td><?php 
if (isset($_POST['signature'])) {
    file_put_contents(dirname(__FILE__) . '\\', json_encode($_POST));
    $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
    $log->LogInfo("============支付成功后台接心数据===============");
    $log->LogInfo(json_encode($_POST));
    echo verify($_POST) ? '验签成功' : '验签失败';
    $orderId = $_POST['orderId'];
    //其他字段也可用类似方式获取
} else {
    echo '签名为空';
}
?>
</td>
		</tr>
	</table>
</body>
</html>
コード例 #13
0
 function unionpay()
 {
     include_once LIB_PATH . 'ORG/Payment/UnionPay/mobile/lib/common.php';
     include_once LIB_PATH . 'ORG/Payment/UnionPay/mobile/lib/SDKConfig.php';
     include_once LIB_PATH . 'ORG/Payment/UnionPay/mobile/lib/secureUtil.php';
     include_once LIB_PATH . 'ORG/Payment/UnionPay/mobile/lib/httpClient.php';
     include_once LIB_PATH . 'ORG/Payment/UnionPay/mobile/lib/log.class.php';
     $order_sn = $_GET['order_sn'];
     $token = $this->token;
     $wecha_id = $this->wechat_id;
     if (empty($order_sn)) {
         $this->error('没有订单号');
     }
     $trade = M('b2c_wingtrade')->where(array('order_sn' => $order_sn, 'token' => $token))->find();
     if ($trade && $trade['is_pay'] == '1') {
         $this->success('该订单已付款,不能重复付款!');
     }
     $pay_type = $_GET['pay_type'];
     if ($pay_type == '1') {
         $order = M('hotel_order')->where(array('sn' => $order_sn, 'token' => $token, 'order_status' => 3))->find();
     } elseif ($pay_type == '2') {
         $order = M('dine_order')->where(array('sn' => $order_sn, 'status' => 2))->find();
     } else {
         $order = M('b2c_order')->where(array('sn' => $order_sn, 'token' => $token, 'status' => 1))->find();
     }
     if (!$order) {
         $this->error('该订单不存在');
     }
     $payment_where = array('token' => $token, 'pay_code' => 'unionpay', 'enabled' => '1', 'pay_type' => $pay_type);
     if (!empty($this->branch_id)) {
         $payment_where['branch_id'] = $this->branch_id;
     }
     $payment = M('b2c_payment')->where($payment_where)->find();
     //$wingpay_config = unserialize($payment['pay_config']);
     if (empty($payment)) {
         $this->error('商家未设置银联支付方式!请联系商家客服!');
     }
     //PageRetUrl 返回支付后的商户网站页面
     $pagereturl = $_GET['front_url'];
     /**
      *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
      */
     // 初始化日志
     $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
     $log->LogInfo("============处理前台请求开始===============");
     if ($pay_type == '1') {
         $total_fee = intval($order['prepayment'] * 100);
     } elseif ($pay_type == '2') {
         $total_fee = intval($order['price'] * 100);
     } else {
         $total_fee = intval($order['price'] * 100);
     }
     $order_time = date('YmdHis');
     // 初始化日志
     $params = array('version' => '5.0.0', 'encoding' => 'UTF-8', 'certId' => getSignCertId(), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000000', 'frontUrl' => SDK_FRONT_NOTIFY_URL, 'backUrl' => SDK_BACK_NOTIFY_URL, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => '898340148160231', 'orderId' => $order_sn, 'txnTime' => $order_time, 'txnAmt' => $total_fee, 'currencyCode' => '156', 'defaultPayType' => '0001');
     // 签名
     sign($params);
     $data = array('token' => $token, 'order_sn' => $order_sn, 'is_pay' => '0', 'set_params' => serialize(array_merge($params, array('return_url' => $pagereturl, 'pay_type' => $pay_type))), 'update_time' => time());
     if (!$trade) {
         $data['create_time'] = time();
         M('b2c_wingtrade')->add($data);
     } else {
         M('b2c_wingtrade')->where(array('token' => $token, 'order_sn' => $order_sn, 'is_pay' => '0'))->save($data);
     }
     /*手机WAP支付方式*/
     // 前台请求地址
     $front_uri = SDK_FRONT_TRANS_URL;
     $log->LogInfo("前台请求地址为>" . $front_uri);
     // 构造 自动提交的表单
     $html_form = create_html($params, $front_uri);
     $log->LogInfo("-------前台交易自动提交表单>--begin----");
     $log->LogInfo($html_form);
     $log->LogInfo("-------前台交易自动提交表单>--end-------");
     $log->LogInfo("============处理前台请求 结束===========");
     echo $html_form;
 }
コード例 #14
0
ファイル: upop.php プロジェクト: nanhuacrab/ecshop
 /**
  * 生成支付代码
  * @param   array   $order  订单信息
  * @param   array   $payment    支付方式信息
  */
 function get_code($order, $payment, $agent_type)
 {
     // 初始化变量
     if (!defined('EC_CHARSET')) {
         $charset = 'UTF-8';
     } else {
         $charset = strtoupper(EC_CHARSET);
     }
     // 初始化日志
     //global $log;
     $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
     $log->LogInfo("============处理前台请求开始===============");
     // 初始化日志
     $orderNumber = $order['order_sn'] . $this->_formatSN($order['log_id']);
     $isVirtual = exist_virtual_card_goods($order['order_id']);
     $member_id = SDK_MEMBER_PC_REAL_ID;
     $cert_path = SDK_MEMBER_MOBILE_REAL_ID;
     $frontEndUrl = return_url(basename(__FILE__, '.php'));
     $backEndUrl = return_url(basename(__FILE__, '.php'));
     if ($agent_type == '07') {
         if ($isVirtual) {
             $member_id = SDK_MEMBER_PC_VIRTUAL_ID;
             $cert_path = SDK_SIGN_PC_VIRTUAL_PATH;
         } else {
             $member_id = SDK_MEMBER_PC_REAL_ID;
             $cert_path = SDK_SIGN_PC_REAL_PATH;
         }
         $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId($cert_path), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => $frontEndUrl, 'backUrl' => $backEndUrl, 'signMethod' => '01', 'channelType' => '07', 'accessType' => '0', 'merId' => $member_id, 'orderId' => $orderNumber, 'txnTime' => date('YmdHis'), 'txnAmt' => $order['order_amount'] * 100, 'currencyCode' => '156', 'defaultPayType' => '0001', 'reqReserved' => ' 透传信息');
     } else {
         if ($isVirtual) {
             $member_id = SDK_MEMBER_MOBILE_VIRTUAL_ID;
             $cert_path = SDK_SIGN_MOBILE_VIRTUAL_PATH;
         } else {
             $member_id = SDK_MEMBER_MOBILE_REAL_ID;
             $cert_path = SDK_SIGN_MOBILE_REAL_PATH;
         }
         $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId($cert_path), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000201', 'frontUrl' => $frontEndUrl, 'backUrl' => $backEndUrl, 'signMethod' => '01', 'channelType' => '08', 'accessType' => '0', 'merId' => $member_id, 'orderId' => $orderNumber, 'txnTime' => date('YmdHis'), 'txnAmt' => $order['order_amount'] * 100, 'currencyCode' => '156', 'defaultPayType' => '0001', 'reqReserved' => ' 透传信息');
     }
     sign($params, $cert_path);
     // 前台请求地址
     $front_uri = SDK_FRONT_TRANS_URL;
     $log->LogInfo("前台请求地址为>" . $front_uri);
     // 构造 自动提交的表单
     $button = "<input type='submit' value='银联支付' />";
     $html_form = create_html($params, $front_uri, $button);
     $log->LogInfo("-------前台交易自动提交表单>--begin----");
     $log->LogInfo($html_form);
     $log->LogInfo("-------前台交易自动提交表单>--end-------");
     $log->LogInfo("============处理前台请求 结束===========");
     return $html_form;
     // $params = array(
     //        "version"            =>  '1.0.0',                      //接口版本
     //        "signMethod"         =>  'md5',                        //加密方式
     //        "charset"            =>  $charset,                     //编码
     //        "transType"          =>  '01',                         //交易类型
     //        "origQid"            =>  '',
     //        "merId"              =>  $merId,                       //收款账号
     //        "merAbbr"            =>  $merAbbr,                     //商户名称
     //        "acqCode"            =>  '',
     //        "merCode"            =>  '',
     //        "commodityUrl"       =>  '',                           //商品url
     //        "commodityName"      =>  '',                           //商品名字
     //        "commodityUnitPrice" =>  '',                           //商品单价
     //        "commodityQuantity"  =>  '',                           //商品数量
     //        "commodityDiscount"  =>  '',
     //        "transferFee"        =>  '',
     //        "orderNumber"        =>  $orderNumber,                 //订单号,必须唯一
     //        "orderAmount"        =>  $order['order_amount'] * 100, //交易金额 转化为分
     //        "orderCurrency"      =>  '156',                        //交易币种,CURRENCY_CNY=>人民币
     //        "orderTime"          =>  date('YmdHis'),               //交易时间, YYYYmmhhddHHMMSS
     //        "customerIp"         =>  $_SERVER['REMOTE_ADDR'],      //用户IP
     //        "customerName"       =>  '',
     //        "defaultPayType"     =>  '',
     //        "defaultBankNumber"  =>  '',
     //        "transTimeout"       =>  '',
     //        "frontEndUrl"        =>  $frontEndUrl,                 // 前台回调URL
     //        "backEndUrl"         =>  $backEndUrl,                  // 后台回调URL
     //        "merReserved"        =>  ''
     // );
     // $params['signature']    =$this->sign($params, $security_key,'md5');
     // $button = "<input type='submit' value='" . $GLOBALS['_LANG']['upop_button'] . "' />";
     // $html = $this->create_html($params,$front_pay_url,$button);
     // return $html;
     // 签名
 }
コード例 #15
0
ファイル: notify_url.php プロジェクト: BruceJi/fanwe
<?php

/**
	后台通知
*/
require_once './config_wap.php';
//银联wap配置文件
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("进入后台通知");
$param = $_REQUEST;
if (!isset($param['signature'])) {
    return 0;
}
if (!verify($param)) {
    return 0;
}
$outer_notice_sn = $param['queryId'];
$payment_notice_sn = $param['orderId'];
if ($param['respCode'] == '00') {
    require_once APP_ROOT_PATH . "system/libs/cart.php";
    $rs = payment_paid($payment_notice_sn, $outer_notice_sn);
    return 1;
} else {
    $log->LogInfo("后台通知处理失败");
    return 0;
}
コード例 #16
0
<?php 
header('Content-type:text/html;charset=utf-8');
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/common.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/SDKConfig.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/secureUtil.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/httpClient.php';
include_once $_SERVER['DOCUMENT_ROOT'] . '/upacp_sdk_php/utf8/func/log.class.php';
/**
 *	预授权完成
 */
/**
 *	以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己需要,按照技术文档编写。该代码仅供参考
 */
// 初始化日志
$log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
$log->LogInfo("===========处理后台请求开始============");
$params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'signMethod' => '01', 'txnType' => '03', 'txnSubType' => '00', 'bizType' => '000201', 'accessType' => '0', 'channelType' => '07', 'orderId' => date('YmdHis'), 'merId' => '888888888888888', 'origQryId' => '201502281110005523968', 'txnTime' => date('YmdHis'), 'txnAmt' => '100', 'backUrl' => SDK_BACK_NOTIFY_URL, 'reqReserved' => ' 透传信息');
// 签名
sign($params);
echo "请求:" . getRequestParamString($params);
$log->LogInfo("后台请求地址为>" . SDK_BACK_TRANS_URL);
// 发送信息到后台
$result = sendHttpRequest($params, SDK_BACK_TRANS_URL);
$log->LogInfo("后台返回结果为>" . $result);
echo "应答:" . $result;
//返回结果展示
$result_arr = coverStringToArray($result);
echo verify($result_arr) ? '验签成功' : '验签失败';
?>

コード例 #17
0
ファイル: cz.php プロジェクト: q546530715/fenzhi-git
 function pay()
 {
     $this->load->database();
     $logId = $this->input->get('logId');
     $rw = $this->db->query(" select * from `moneylog`  where  `logId`=" . $logId)->row();
     // 初始化日志
     $log = new PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
     $log->LogInfo("============处理前台请求开始===============");
     // 初始化日志
     $params = array('version' => '5.0.0', 'encoding' => 'UTF-8', 'certId' => getSignCertId(), 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000000', 'frontUrl' => SDK_FRONT_NOTIFY_URL, 'backUrl' => SDK_BACK_NOTIFY_URL, 'signMethod' => '01', 'channelType' => '07', 'accessType' => '0', 'merId' => '898110260120032', 'orderId' => $rw->ordernumber, 'txnTime' => date('YmdHis'), 'txnAmt' => $rw->shouru * 100, 'currencyCode' => '156', 'defaultPayType' => '0001');
     // 签名
     sign($params);
     // 前台请求地址
     $front_uri = SDK_FRONT_TRANS_URL;
     $log->LogInfo("前台请求地址为>" . $front_uri);
     // 构造 自动提交的表单
     $html_form = create_html($params, $front_uri);
     $log->LogInfo("-------前台交易自动提交表单>--begin----");
     $log->LogInfo($html_form);
     $log->LogInfo("-------前台交易自动提交表单>--end-------");
     $log->LogInfo("============处理前台请求 结束===========");
     echo $html_form;
 }
コード例 #18
0
 public function cancelpay($oid)
 {
     $order = M('Order');
     $map['oid'] = $oid;
     $oinfo = $order->where($map)->find();
     if ($oinfo['paytype'] == '0') {
         $log = new \PhpLog(SDK_LOG_FILE_PATH, "PRC", SDK_LOG_LEVEL);
         $log->LogInfo("============处理前台请求开始===============");
         // 初始化日志
         $params = array('version' => '5.0.0', 'encoding' => 'utf-8', 'certId' => getSignCertId(), 'signMethod' => '01', 'txnType' => '32', 'txnSubType' => '00', 'bizType' => '000201', 'accessType' => '0', 'channelType' => '07', 'orderId' => build_order_no(), 'merId' => '898110275120075', 'txnTime' => date('YmdHis'), 'backUrl' => SDK_CDE_BACK_NOTIFY_URL, 'reqReserved' => ' 透传信息');
         $params['origQryId'] = $oinfo['trade_no'];
         $cdeposit = $oinfo['deposit'] + $oinfo['c_price'];
         $params['txnAmt'] = 10;
         //floatval($cdeposit) * 100;
         sign($params);
         //echo "请求:" . getRequestParamString ( $params );
         $log->LogInfo("后台请求地址为>" . SDK_BACK_TRANS_URL);
         // 发送信息到后台
         $result = sendHttpRequest($params, SDK_BACK_TRANS_URL);
         $log->LogInfo("后台返回结果为>" . $result);
         //echo "应答:" . $result;
         //返回结果展示
         $result_arr = coverStringToArray($result);
         if (verify($result_arr)) {
             if ($result_arr['respCode'] == '00') {
                 return true;
             } else {
                 return false;
             }
         } else {
             return false;
         }
     } else {
         return false;
     }
 }