手机充值接口 欢迎测试
2016-07-07 14:55 来源:www.chinab4c.com 作者:ecshop专家
http://www.hongyun2000.com/ 希望可以做为ecshop插件 |
回答:
现在把代码公布给大家参考下, 希望有空可以做成ecshop插件供大家使用 参考文档:OFCARD系统http接口协议(V5.3) 最终效果网站:http://www.hongyun2000.com 原文:手机充值接口源代码 手机直充接口代码如下请参考代码注释进行修改) /* * 欧飞接口v4.0服务控制 * 参考:OFCARD系统http接口协议(V5.3) * 版本 :0.1 * 作者:http://www.heui.org * 日期:20110219 */ class ofcard_service { var $gateway ;//手机直充网关地址 var $param ; //查询参数 /** * 从配置文件及入口文件中初始化变量 * @param string $cardnum 话费面值 * @param string $order_id 订单号 * @param string $game_userid 手机号 * @param string $userid SP编码 * @param string $userpws SP接入密码 * @param string $version 欧飞接口版本(固定值为:4.0) * @todo 配置文件数组化 */ function ofcard_service( $cardnum , $order_id , $game_userid , $userid , $userpws , $version ) { $this ->gateway = 'http://esales1.ofcard.com:8088/onlineorder.do ' ; $this ->param = array (); $this ->param[ 'userid' ] = $userid ; $this ->param[ 'userpws' ] = md5( $userpws ); //$this->param['cardid'] = '140101'; $this ->param[ 'cardid' ] = $this ->get_cardid( $game_userid ); $this ->param[ 'cardnum' ] = $cardnum /50; $this ->param[ 'sporder_id' ] = $order_id ; $this ->param[ 'sporder_time' ] = date ( 'YmdHis' ); $this ->param[ 'game_userid' ] = $game_userid ; $keystr = 'OFCARD' ; $this ->param[ 'md5_str' ] = strtoupper ( md5( $this ->param[ 'userid' ]. $this ->param[ 'userpws' ]. $this ->param[ 'cardid' ]. $this ->param[ 'cardnum' ]. $this ->param[ 'sporder_id' ]. $this ->param[ 'sporder_time' ]. $game_userid . $keystr ) ); $this ->param[ 'version' ] = $version ; } /** * 进行充值,使用snoopy提交 * @param Snoopy $snoopy * @param ezSQL_mysql $db * @param string $order_id * @return 充值结果 * @todo snoopy 集成 */ function recharge( $snoopy , $db , $order_id ) { $snoopy ->submit( $this ->gateway, $this ->param); //下面数据库操作属于商家逻辑 $sql = "UPDATE `recharge` SET `is_recharge` = " . $this ->get_xml_value( "game_state" , $snoopy ->results) . ", `ofcard_trade_id` = '" . $this ->get_xml_value( "orderid" , $snoopy ->results) . "', `purchase_price` = '" . $this ->get_xml_value( "ordercash" , $snoopy ->results) . "' WHERE `order_id` = " . $order_id ; $db ->query( $sql ); return $this ->get_xml_value( "game_state" , $snoopy ->results); } /** * xml数据简单解析 * @paramstring $name * @paramstring $xml * @returnstring $ret */ function get_xml_value( $name , $xml ) { $ret = '' ; preg_match( "|<" . $name . ">(.*)</" . $name . ">|U" , $xml , $ret ); return $ret [1]; } /** * * 获取充值状态 * http://202.102.53.141:83/api/que ... x&spbillid=spxxxxxx * @param string $userid SP编码 * @param string $spbillid 商户系统订单号 * @return 充值状态 */ function get_is_recharge( $userid , $spbillid ){ $status_url = "http://202.102.53.141:83/api/query.do?userid= " . $userid . "&spbillid=" . $spbillid ; return file_get_contents ( $status_url ); } /** * * 获取账户余额 * @param string $userid * @param string $userpws * @param string $version * @return 账户余额 */ function get_leftcredit( $userid , $userpws , $version ) { $url = "http://esales1.ofcard.com:8088/queryuserinfo.do?userid= " . $userid . "&userpws=" . md5( $userpws ) . "&version=" . $version ; return self::get_xml_value( "ret_leftcredit" , file_get_contents ( $url )); } /** * 是否可以充值(未进行余额判断) * @param string $phoneno * @param string $price * @param string $userid * @return bool 是否可以充值 */ function is_recharge( $phoneno , $price , $userid ) { $url = "http://esales1.ofcard.com:8088/telcheck.do?phoneno= " . $phoneno . "&price=" . $price . "&userid=" . $userid ; $ret = split( '#' , file_get_contents ( $url )); return (1 == $ret [0]); } /** * * 所需提货商品的编码 * (现全国移动联通快充直充编码为且仅为140101,电信手机编码为且仅为18) * @param string $phoneno 手机号码 * @todo 常量加入配置文件 */ function get_cardid( $phoneno ) { $num = substr ( $phoneno , 0, 3); $ChinaMobile = array (134,135,147,147,136,137,138,139,150,151,152,182,157,158,159,187,188); $ChinaUnicom = array (130,131,132,155,156,145,185,186); $ChinaTelecom = array (133,153,180,189); if (in_array( $num , $ChinaMobile ) || in_array( $num , $ChinaUnicom )) { return '140101' ; } if (in_array( $num , $ChinaTelecom )) { return '18' ; } } } 手机直充接口使用如下: 1 2 3 $ofcard = new ofcard_service( $original_price , $dingdan , $mobile , $userid , $userpws , $version ); $ofcard ->recharge( $snoopy , $db , $dingdan ); |
楼主,咱俩同名呀。 哈哈 |
真的吗? 很有缘分啊 |
已经加你了。麻烦通过下。 |
楼主局的网站具体是怎么实现这个功能的 能详细说下吗 或者简单做个教程提供下载? |
这个怎么用呀? |
进来学习了,,,, |
最近更新
常用插件
- ecshop商品分类名称增加样
ecshop插件介绍:本插件可以方便在后台管理,为ecshop商品分类名称增加样...
- ecshop2.7.1打印发货单插件
ecshop2.7.1打印发货单插件介绍:ecshop2.7.1和以前的ecshop版本不一样,ecs...
- ecshop分类批量扩展插件
ecshop分类批量扩展插件,这个插件是ecshop插件里面比较核心的插件。我们...
- ecshop二次开发详细页面生
插件介绍: ECSHOP系统,在很多时候,很多商品没有人购买,不但购买的人...
- ecshop二次商品订购人信息
ecshop二次商品订购人信息填写插件,有时候给朋友送花,或者是送礼品的...
ecshop热门问答
ecshop热门资料
ecshop路徑
ecshop注册邮件
ecshopECMALL银联支付
ecshopwicktian
ecshop纯静态
ecshop时报
ecshop防火
ecshop黑色
ecshop账户
ecshop分类目录树
ecshop操作按钮
ecshop尾部
ecshop付空间
ecshop漏洞补丁
易买吧cps
ecshop短信功能
ecshop解密
ecshop安装百度
ecshop小米模板
ecshop竞争对手
ecshop安全隐患
ecshop在线调查
ecshopsetting
ecshop金币
ecshopenabled
ecshop紧急求助
ecshop斑竹
ecshop购物体验
ecshopregister
ecshop进度