<?php header('Content-type:text/html;charset=utf-8'); include_once '../func/common.php'; include_once '../func/SDKConfig.php'; include_once '../func/secureUtil.php'; include_once '../func/encryptParams.php'; include_once '../func/httpClient.php'; include_once '../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' => '02', 'txnSubType' => '00', 'bizType' => '000000', 'channelType' => '07', 'backUrl' => SDK_BACK_TRANS_URL, 'accessType' => '0', 'merId' => '898340183980105', 'subMerId' => '', 'subMerName' => '', 'subMerAbbr' => '', 'orderId' => date('YmdHis'), 'txnTime' => date('YmdHis'), 'accType' => '', 'accNo' => '', 'txnAmt' => '1', 'currencyCode' => '156', 'customerInfo' => customerInfo(), 'termId' => '', 'reqReserved' => '', 'reserved' => '', 'riskRateInfo' => '', 'encryptCertId' => '', 'instalTransInfo' => '', 'issInsCode' => '', 'userMac' => '', 'cardTransData' => '', 'vpcTransData' => '', 'orderDesc' => ''); // 检查字段是否需要加密 encrypt_params($params); // 签名 sign($params); $log->LogInfo("后台请求地址为>" . SDK_BACK_TRANS_URL); // 发送信息到后台 $result = sendHttpRequest($params, SDK_BACK_TRANS_URL); $log->LogInfo("后台返回结果为>" . $result); //返回结果展示 $result_arr = coverStringToArray($result); $html = create_html($result_arr, SDK_BACK_NOTIFY_URL); echo $html;
//商户类型为平台类商户接入时必须上送 'subMerId'=> '',//二级商户代码--C //商户类型为平台类商户接入时必须上送 'subMerName'=> '',//二级商户名称--C //商户类型为平台类商户接入时必须上送 'subMerAbbr'=> '',//二级商户简称--C // 'orderId'=> date('YmdHis'),//商户订单号--M // 'txnTime'=> date('YmdHis'),//订单发送时间--M // 'accType'=> '',//账号类型--O //对于前台类交易,返回卡号后4位,后台类交易,原样返回 'accNo'=> '',//账号--O // 'customerInfo'=> customerInfo(),//银行卡验证信息及身份信息--O //商户自定义保留域,交易应答时会原样返回 'reqReserved'=> '',//请求方保留域--O //格式如下:{子域名1=值&子域名2=值&子域名3=值} 移动支付参考消费委托关系信息 {bindInfo=XXXXX} 特殊商户上送 'reserved'=> '',//保留域--O //格式如下:{子域名1=值&子域名2=值&子域名3=值}有风险级别要求的商户必填 风险级别 {riskLevel=XX} 'riskRateInfo'=> '',//风险信息域--O //当使用银联公钥加密密码等信息时,需上送加密证书的CertID 'encryptCertId'=> '',//加密证书ID--C //移动支付业务需要上送 'userMac'=> '',//终端信息域--O //需做建立委托交易时填写 'bindId'=> '',//委托关系标识号--M //用于填写关联业务类型01:消费02:代收 'relTxnType'=> '',//关联业务标识--C //
<?php header('Content-type: application/json;charset=UTF-8'); include_once './func/common.php'; include_once './func/SDKConfig.php'; include_once './func/secureUtil.php'; include_once './func/encryptParams.php'; include_once './func/httpClient.php'; include_once './custom_func.php'; if (!isset($_POST['card_info'])) { die(json_encode(array('status' => 400, 'message' => 'Invalid input: card_info is required.'))); } $decrypted_post_data = decrypt_post_data($_POST['card_info']); try { $card_info = json_decode($decrypted_post_data, True); } catch (Exception $e) { die(json_encode(array('status' => 400, 'message' => 'Error parsing post data.'))); } $params = array('version' => '5.0.0', 'encoding' => 'GBK', 'certId' => getSignCertId(), 'signMethod' => '01', 'txnType' => '01', 'txnSubType' => '01', 'bizType' => '000301', 'channelType' => '07', 'backUrl' => $SDK_BACK_NOTIFY_URL, 'accessType' => '0', 'merId' => $SDK_MER_ID, 'orderId' => get_order_id(), 'txnTime' => get_order_time(), 'accType' => $card_info['acc_type'], 'accNo' => $card_info['acc_no'], 'txnAmt' => get_payment_amount(), 'currencyCode' => '156', 'customerInfo' => customerInfo($card_info['acc_no'], $card_info['certif_tp'], $card_info['certif_id'], iconv("UTF-8", "gb2312", $card_info['customer_name']), $card_info['phone_no'], $card_info['sms_code'], $card_info['pin'], $card_info['cvn2'], $card_info['expired']), 'reqReserved' => gen_callback_reserved_string(), 'encryptCertId' => getEncryptCertId(), 'payCardType' => $card_info['card_type']); // 检查字段是否需要加密 encrypt_params($params); // 签名 sign($params); // 发送信息到后台 $result = sendHttpRequest($params, $SDK_BACK_TRANS_URL); $result_array = coverStringToArray($result); if ($result_array['respCode'] != '00') { die(json_encode(array('status' => -1, 'message' => 'Error.', 'error_resp_code' => $result_array['respCode'], 'error_resp_msg' => iconv('gb2312', 'UTF-8', $result_array['respMsg'])))); } echo json_encode(array('status' => 200, 'message' => 'Success'));