Beispiel #1
0
 /**
  * Tests HashMap->put()
  */
 public function testPut()
 {
     //组织请求参数
     //		$map = new HashMap();
     //		$map->put("merId","9996");
     //		$map->put("orderId",rand(100000,999999));
     //		$map->put("merDate",date("Ymd"));
     //		$map->put("amount","1");
     //		$map->put("version","3.0");
     //后台直连下订单
     //		$map = new HashMap();
     //		$map->put("merId", "9996");
     //		$map->put("goodsId", "1001");
     //		$map->put("mobileId", "13720040275");
     //		$map->put("orderId", "467242");
     //		$map->put("merDate", "20100402");
     //		$map->put("amount", "1");
     //		$map->put("amtType", "01");
     //		$map->put("bankType", "3");
     //		$map->put("notyfuUrl", "http://pay.test.umpay.com/pay/test/testNotify.jsp");
     //		$map->put("merPriv", "");
     //		$map->put("expand", "");
     //		$map->put("version", "3.0");
     //订单查询
     $map = new HashMap();
     $map->put("merId", "9996");
     $map->put("goodsId", "100");
     $map->put("orderId", "236798");
     $map->put("merDate", "20100302");
     $map->put("mobileId", "13910173623");
     $map->put("version", "3.0");
     //获取请求数据对象
     //		$reqData = MerToPlat::cancelByGet($map);//商户撤销
     //		$reqData = MerToPlat::directPayByGet($map);//后台直连下单
     $reqData = MerToPlat::queryTransByGet($map);
     //订单
     //获取请求URL
     $url = $reqData->getUrl();
     //		echo "\n" . $url;
     //请求平台取得平台响应结果
     $html = file_get_contents($url);
     //		echo "\n".$html;
     //解析平台响应数据
     //		$resData = PlatToMer::getCancelByHtml($html);//商户撤销职务
     //		$resData = PlatToMer::getDirectPayByHtml($html);//后台直连下单
     $resData = PlatToMer::getQueryTransByHtml($html);
     $retCode = $resData->get("retCode");
     //判断退费结果,retCode=0000为成功,其他为失败,
     if ($retCode == "0000") {
         echo "\n商户退费成功";
     } else {
         echo "\n商户退失败,响应码:" . $retCode;
     }
 }
Beispiel #2
0
$gate_id = $data->get("gate_id");
$identity_type = $data->get("identity_type");
$identity_code = $data->get("identity_code");
$card_holder = $data->get("card_holder");
$last_four_cardid = $data->get("last_four_cardid");
$usr_busi_agreement_id = $data->get("usr_busi_agreement_id");
$usr_pay_agreement_id = $data->get("usr_pay_agreement_id");
$version = $data->get("version");
$sign = $data->get("sign");
//获取UMPAY平台请求商户的支付结果通知数据,并对请求数据进行验签,此时商户接收到的支付结果通知会存放在这里,商户可以根据此处的trade_state订单状态来更新订单
$resData = new HashMap();
try {
    //获取UMPAY平台请求商户的支付结果通知数据,并对请求数据进行验签
    //如验证平台签名正确,即应响应UMPAY平台返回码为0000。【响应返回码代表通知是否成功,和通知的交易结果(支付失败、支付成功)无关】
    //验签支付结果通知 如验签成功,则返回ret_code=0000
    $reqData = PlatToMer::getNotifyRequestData($data);
    $resData->put("ret_code", "0000");
} catch (Exception $e) {
    //如果验签失败,则抛出异常,返回ret_code=1111
    System . out . printf("验证签名发生异常" + $e);
    $resData->put("ret_code", "1111");
}
//验签后的数据都组织在resData中。
//生成平台响应UMPAY平台数据,将该串放入META标签,以下几个参数为结果通知必备参数
//生成平台响应UMPAY平台数据,将该串放入META标签
$resData->put("mer_id", $data->get("mer_id"));
$resData->put("sign_type", $data->get("sign_type"));
$resData->put("mer_date", $data->get("mer_date"));
$resData->put("order_id", $data->get("order_id"));
$resData->put("version", $data->get("version"));
$resData->put("ret_msg", "success");
Beispiel #3
0
        <div class="mright">
          <h3>后台直连响应解析结果</h3>
          <div class="mrmain">
            <table>
              <tbody>
 <?php 
require_once '../api/plat2Mer.php';
$html = $_REQUEST['html'];
$html = is_null($html) ? "" : trim($html);
$dataType = $_REQUEST['dataType'];
$data = new HashMap();
try {
    if ($dataType == "0") {
        $data = PlatToMer::getResDataByHtml($html);
    } else {
        $data = PlatToMer::getResDataByMeta($html);
    }
} catch (Exception $e) {
    die("解析响应数据出错");
}
if (!is_null($data) && $data->size() > 0) {
    $keys = $data->keys();
    for ($i = 0; $i < count($keys); $i++) {
        echo "<tr>\n";
        if ($keys[$i] == "sign") {
            echo '<th valign="top" nowrap>【sign】:</th>';
            echo "\n";
            echo '<td valign="top" nowrap><textarea cols="60" rows="3" name="html">' . $data->get($keys[$i]) . '</textarea></td>';
            echo "\n";
        } else {
            echo '<th valign="top" nowrap>【' . $keys[$i] . '】:</th>';
<html>
<?php 
require_once "../api/plat2Mer.php";
require_once "../api/mer2Plat.php";
//获取联动平台支付结果通知数据(商户应采取循环遍历方式获取平台通知数据,不应采取固定编码的方式获取固定字段,
//否则当平台通知数据发生变化时,容易出现接收数据验签不通过情况)
$map = new HashMap();
foreach ($_REQUEST as $key => $value) {
    $map->put($key, $value);
}
//获取UMPAY平台请求商户的支付结果通知数据,并对请求数据进行验签,此时商户接收到的支付结果通知会存放在这里,商户可以根据此处的trade_state订单状态来更新订单。
$resData = new HashMap();
try {
    //如验证平台签名正确,即应响应UMPAY平台返回码为0000。【响应返回码代表通知是否成功,和通知的交易结果(支付失败、支付成功)无关】
    //验签支付结果通知 如验签成功,则返回ret_code=0000
    $reqData = PlatToMer::getNotifyRequestData($map);
    $resData->put("ret_code", "0000");
} catch (Exception $e) {
    //如果验签失败,则抛出异常,返回ret_code=1111
    System . out . printf("验证签名发生异常" + $e);
    $resData->put("ret_code", "1111");
}
//验签后的数据都组织在resData中。
//生成平台响应UMPAY平台数据,将该串放入META标签,以下几个参数为结果通知必备参数,实际响应参数请参照接口规范填写。
$resData->put("mer_id", $map->get("mer_id"));
$resData->put("sign_type", $map->get("sign_type"));
$resData->put("version", $map->get("version"));
$resData->put("ret_msg", "success");
$data = MerToPlat::notifyResponseData($resData);
?>