财付通-ShopNC商城即时到帐中介担保双接口的开发后续之网银直联功能开发

ShopNC商城即时到帐中介担保双接口开发完之后,老大看了老觉得缺少了啥,一对比ShopEX之后发现,ShopEX的财付通插件有网银直联功能,这个功能挺牛逼的,比较贴切,人性化……省略诸多赞美之词之后,该开工了。

如果有什么看不懂的地方请返回去查看上一篇文章《财付通-ShopNC商城即时到帐中介担保双接口的开发》。

现在先来看看我们的手头上的资源吧,我们打开b2b.zip这个压缩包,很显眼的我们就能看到有一个文件夹叫做网银直联样式,然后点击进去,你会发现,里面都包含着你需要的东西了,比如网银直联实现方法.doc还有pay.html演示文档。

现在说一下怎么跟ShopNC集合在一起哈。

前期工作:

  1. 需要将用到的图片资源放到ShopNC内,方便调用,我是将图片资源tenpayimages文件夹直接复制到ShopNC的资源文件夹内,路径如下:/resource/images/tenpayimages/
  2. 复制pay.html里面的代码待用(第二个table标签整个内容复制噢),其实吧,如果你是直接抄的话是不需要这步的。

然后请打开\templates\default\home\cart_step2.php这个文件,大约82行处,找到如下代码:

[php]<?php if(!empty($output[‘online_array’])) { ?>
      <!– online begin –>[/php]

整个修改为如下代码:

[php]      <?php if(!empty($output[‘online_array’])) { ?>
      <!– online begin –>
      <div class="tabs-panel">
        <ul class="cart-defray">
        <?php // 2014.12.16 ChinaBUG 增加财付通的网银直连功能   ?>
          <?php foreach($output[‘online_array’] as $val) { ?>
          <?php if($val[‘payment_code’] != ‘tenpay’){?>
          <li>
            <label class="radio">
              <input id="payment_<?php echo $val[‘payment_code’]; ?>" type="radio" name="payment_id" value="<?php echo $val[‘payment_id’]; ?>" extendattr="<?php echo $val[‘payment_code’]; ?>"/>
            </label>
            <span class="logo"><img src="api/payment/<?php echo $val[‘payment_code’]; ?>/logo.gif" alt="<?php echo $val[‘payment_name’]; ?>-<?php echo $val[‘payment_info’]; ?>" title="<?php echo $val[‘payment_name’]; ?>-<?php echo $val[‘payment_info’]; ?>" onload="javascript:DrawImage(this,125,50);" /></span>
            <dl class="explain">
              <dt></dt>
              <dd><?php echo $val[‘payment_info’]; ?></dd>
            </dl>
          </li>
          <?php }else{ ?>
          <li>
            <label class="radio">
              <input id="payment_<?php echo $val[‘payment_code’]; ?>" type="radio" name="payment_id" value="<?php echo $val[‘payment_id’]; ?>" extendattr="<?php echo $val[‘payment_code’]; ?>"/>
            </label>
            <!–<span class="logo"><img src="api/payment/<?php echo $val[‘payment_code’]; ?>/logo.gif" alt="<?php echo $val[‘payment_name’]; ?>-<?php echo $val[‘payment_info’]; ?>" title="<?php echo $val[‘payment_name’]; ?>-<?php echo $val[‘payment_info’]; ?>" onload="javascript:DrawImage(this,125,50);" /></span>–>
            <dl class="explain">
              <dt></dt>
              <dd>
              <!—->
<table style="FONT-SIZE: 12px" cellspacing="1" cellpadding="3" width="762" align="center" bgcolor="#D8D9DB" border="0">
<tr>
    <td width="754" height="36" style="background:#F1F3F2">
        &nbsp;<img src="/resource/images/tenpayimages/logo.gif"/>为您提供以下网上支付服务<span style=" color:#868686">(财付通是腾讯旗下第三方支付平台)</span>
    </td>
</tr>
<tr>
    <td height="36" style="background:#FFFFFF; padding-left:20px " id="payment_tenpay_btype">
        <br/>
        <input name="bank_type" type="radio" value="1002" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/10.gif"/>
        <input name="bank_type" type="radio" value="1001" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/17.gif"/>
        <input name="bank_type" type="radio" value="1003" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/2.gif"/>
        <input name="bank_type" type="radio" value="1005" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/1.gif"/>
        <input name="bank_type" type="radio" value="1004" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/12.gif"/>
        <br/>
        <input name="bank_type" type="radio" value="1008" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/8.gif"/>
        <input name="bank_type" type="radio" value="1009" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/27.gif"/>
        <input name="bank_type" type="radio" value="1032" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/11.gif"/>
        <input name="bank_type" type="radio" value="1022" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/3.gif"/>
        <input name="bank_type" type="radio" value="1006" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/4.gif"/>
        <br/>
        <input name="bank_type" type="radio" value="1021" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/7.gif"/>
        <input name="bank_type" type="radio" value="1027" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/6.gif"/>
        <input name="bank_type" type="radio" value="1010" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/18.gif"/>
        <input name="bank_type" type="radio" value="1052" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/16.gif"/>
        <input name="bank_type" type="radio" value="1020" style="vertical-align:top"/>&nbsp;<img src="/resource/images/tenpayimages/5.gif"/>
        <br/>
        <input name="bank_type" type="radio" value="8001"/>&nbsp;&nbsp;财付通账户支付<span style=" color:#868686">(财付通账户余额支付,一点通支付)</span>
        <input name="bank_type" type="radio" value="0" style="display:none;"/>
    </td>
</tr>
</table>
              <!—->
              </dd>
            </dl>
          </li>
          <?php } ?>
          <?php } ?>
        </ul>
      </div>
      <!– online end –>[/php]

 

 

保存一下,然后界面方面的就完成了噢。你可以看到很牛逼的一个界面了。

不过要是你点击的时候你会发现,呵呵支付方式前面的那个单选框没有办法选中,也就是说,如果你点击完网银的时候那个支付方式ID的单选框是没办法自动选择的,如果你提交的话,系统就会给你一个大大的白眼的,怎么办呢?

其实很简单,我们来写一个jQuery脚本,让系统自动选择呗。

[code lang=”javascript”]$(function() {
    //2014.12.16 ChinaBUG 财付通增加网银直连
    var payment_tenpay = $(‘#payment_tenpay’);
    $(‘#payment_tenpay_btype’).children("input").each(function(index,ele){
        $(ele).click(function(){payment_tenpay.attr({checked:true});});
    });
    //
}); [/code]

然后保存,浏览,你会发现点击任何一个网银都会自动选中支付方式的单选框了,系统再也不用担心找不到支付方式了。

这样就好了吗?NO….

我们还需要在把网银的编码传给支付端口噢。

请找到\api\payment\tenpay\tenpay.php文件并打开,然后查找到下面的代码处:

[php]//银行类型,默认为财付通
$reqHandler->setParameter("bank_type", "DEFAULT");[/php]

然后改为下面的代码哈

[php] //2014.12.16 ChinaBUG 财付通增加网银直连
        //银行类型,默认为财付通
        if(isset($_POST[‘bank_type’])){
            $reqHandler->setParameter("bank_type", intval($_POST[‘bank_type’]));
        }else $reqHandler->setParameter("bank_type", "DEFAULT");[/php]

 

保存,然后就彻底完工了,随便选择一个网银提交之后就会自动转向相应的网银界面处理了。

后记

财付通的客服的相应速度实在不行,不是我在嫌弃,真的不行!就那个错误提示出现,我反馈之后,我就再也懒得问了,因为不懂得找谁!

我按照提示打电话给客服,客户很认真客气的跟我沟通了一下,然后要求我把这个提示!截图给他们的QQ客服人员处理,然后我加QQ(88881535)了,那个QQ死活是加不了的,不知道为啥,而且最关键是查找是找不到的,不过没事,我们还是有办法的嘛,终于能说上话了,结果TMD就一直提示不是上班时间什么的,好吧,我明明是上班时间好吗!

其实我一开始发现1535的加不了,电话客服给我另外一个号,那个号更加坑爹!QQ号是88881560,这个号不是人工号!既然不是人工号MD还给我!!我发消息就是那个几句,只能选择那些业务类型。。。

悲剧呀~其实吧,相比支付宝,财付通的服务就有点不够看了,这个就不展开了。

写这个文章的时候我再次测试了一下,88881535终于是可以查找到。然后我呢还是留言,然后他还是一如既往的给我一个大白眼的提示:您好,客服暂时离开,马上回来,请稍候。

我等,我等,有消息了会来更新的。