加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

使用php实现快钱支付功能

发布时间:2022-07-23 00:05:08 所属栏目:PHP教程 来源:互联网
导读:本项目用zend framework框架实现的 modules/default/controllers/IndexController.php IndexController.php 复制代码 代码如下: ?php class IndexController extends Zend_Controller_Action { public function init() { /* Initialize action controller
  本项目用zend framework框架实现的
 
  modules/default/controllers/IndexController.php
 
  IndexController.php
 
  复制代码 代码如下:
 
  <?php
 
  class IndexController extends Zend_Controller_Action
 
  {
 
  public function init()
 
  {
 
  /* Initialize action controller here */
 
  }
 
  public function indexAction()
 
  {
 
  /*模拟订单
 
  *$MockOrder是从数据库取出来的信息,它包含一些块钱Request的信息。这里我写死了。
 
  *orderId订单号,数据库表的主键(唯一)。 //必要字段
 
  *usr_idtype证件类型,根据自己需要。
 
  *usr_idcode证件号,根据自己需要。
 
  *etx_status是否优惠,根据自己需要。
 
  *time_create验证是否符合优惠的时间,根据自己需要。
 
  *ets_license套餐代码如同商品类别,根据自己需要。
 
  *contact_type联系方式类型,固定选择值1,2。1电子邮件,2手机号,根据自己需要,块钱那边可以为空。
 
  *contact_text联系方式,根据contact_type来填写,根据自己需要,块钱那边可以为空。
 
  *etsPrice套餐价格及商品价格,根据自己需要。
 
  *orderPrice实际价格,根据自己需要。
 
  *orderAmount订单实际支付金额,这个要加手续费的。 //必要字段
 
  *orderTime订单时间。 //必要字段
 
  *paySuccess订单是否支付成功。 //必要字段
 
  *buySuccess账号是否生成功,根据自己需要
 
  *payTime订单支付成功时间。 //必要字段
 
  *总之凡是跟订单有关的都是必要字段
 
  *orderId、orderAmount、orderTime为 Request所需字段
 
  *paySuccess、payTime为Response所需字段
 
  */
 
  $MockOrder = array();
 
  $MockOrder['orderId'] = '100000125';//订单号。--必要
 
  $MockOrder['usr_idtype'] = '1';//证件类型,身份证
 
  $MockOrder['usr_idcode'] = '371111199011111111';//身份证号
 
  $MockOrder['etx_status'] = '0';//是否优惠,否
 
  $MockOrder['time_create'] = '1352338189';//验证是否优惠时间
 
  $MockOrder['ets_license'] = '1';//套餐代码及商品类别
 
  $MockOrder['contact_type'] = '1';//联系方式类型 1,邮箱
 
  $MockOrder['contact_text'] = 'x@163.com';//联系方式,邮箱
 
  $MockOrder['etsPrice'] = '30800';//套餐价格及商品价格
 
  $MockOrder['orderPrice'] = '30800';//实际价格
 
  $MockOrder['orderAmount'] = '31100';//订单实际支付价格,加手续费的。--必要
 
  $MockOrder['orderTime'] = '1352338199';//订单生成时间。--必要
 
  $MockOrder['paySuccess'] = '0';//订单是否支付成功。--必要
 
  $MockOrder['buySuccess'] = '0';//账号是否生成成功
 
  $MockOrder['payTime'] = '0';//订单支付时间。--必要
 
  //BillRequest就是快钱那边需要的的一些参数
 
  $this->view->BillRequest = new Application_Model_BillRequest($MockOrder);
 
  Zend_Debug::dump($this->view->BillRequest);exit;
 
  }
 
  //bgUrl地址指向这里
 
  public function receiveAction()
 
  {
 
  //receive数据库设计
 
  /*用$MockReceive数组模拟
 
  * $MockReceive = array();
 
  * $MockReceive['id']主键;
 
  * $MockReceive['orderId']商户订单号;
 
  * $MockReceive['receiveTime']接受时间;
 
  * $MockReceive['queryString']http_build_encode($_REQUEST);
 
  * $MockReceive['dealId']快钱交易号;
 
  * $MockReceive['bankDealId']银行交易号;
 
  * $MockReceive['payResult']处理结果10:支付成功;11:支付失败;
 
  * $MockReceive['dealTime']快钱交易时间;
 
  * $MockReceive['payAmount']订单实际支付金额;
 
  * $MockReceive['fee']费用;
 
  * $MockReceive['errCode']错误代码;
 
  */
 
 
  /*$_REQUEST是快钱那边返回来的数据
 
  * merchantAcctId人民币账号,与提交订单时的块钱账号保持一致。
 
  * version网关版本,固定值:v2.0,与提交订单时的网关版本号保持一致。
 
  * language网页显示语言种类,1中文显示,与提交订单时的网页显示语言种类保持一致
 
  * signType签名类型,4PKI签名,与提交订单时的签名类型保持一致
 
  * payType支付方式,00全部,与提交订单时的支付方式保持一致
 
  * bankId银行代码
 
  * orderId商户订单号,与提交订单时的商户订单号保持一致
 
  * orderTime商户订单提交时间,与提交订单时的商户订单提交时间保持一致
 
  * orderAmount商户订单金额,与提交订单时的商户订单金额保持一致。
 
  * dealId快钱交易号
 
  * bankDealId银行交易号
 
  * dealTime快钱交易时间
 
  * payAmount订单实际支付金额
 
  * fee费用
 
  * ext1扩展字段1,与提交订单时的扩展字段1保持一致
 
  * ext2扩展字段2,与提交订单时的扩展字段2保持一致
 
  * payResult处理结果 10:支付成功;11:支付失败
 
  * errCode错误代码,可为空
 
  * signMsg签名字符串
 
  */
 
  $BillResponse = new Application_Model_BillResponse($_REQUEST);
 
  //$BillResponse->checkSignMsg验证签名字符串是否正确,防止bug漏洞等
 
  if($BillResponse->checkSignMsg){
 
  //判断订单支付是否成功
 
  if($BillResponse->isSuccess){
 
  //返回给快钱,快钱会按照redirecturl地址跳到新页面,这里是成功页面
 
  return "<result>1</result><redirecturl>http://99bill/default/index/sucess</redirecturl>";exit;
 
  }else{
 
  //返回给快钱,快钱会按照redirecturl地址跳到新页面,这个是失败页面
 
  return "<result>1</result><redirecturl>http://99bill/default/index/fail</redirecturl>";exit;
 
  }
 
  }
 
  //返回给快钱,快钱会按照redirecturl地址跳到新页面,这个是失败页面
 
  return "<result>1</result><redirecturl>http://99bill/default/index/fail</redirecturl>";exit;
 
  }
 
  //redirecturl地址
 
  //成功
 
  public function success()
 
  {
 
  }
 
  //失败
 
  public function fail()
 
  {
 
  }
 
  }。
 

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读