当前位置:   article > 正文

thinkphp集成银联网关支付简单实例_php网银接口开发demo

php网银接口开发demo

thinkphp集成银联手机网关支付简单实例

准备工作
  • 网银手机网关支付产品开发包下载:
    https://open.unionpay.com/ajweb/help/file/toDetailPage?id=379&flag=1

  • 网关支付技术开发包下载:
    https://open.unionpay.com/ajweb/help/file/toDetailPage?id=377&flag=1

  • 所需证书
    版本5.1需要5个证书,其中四个放在服务端,一个上传网银
    这里写图片描述
    还有一个用户的私钥证书,公钥需要进去商户中心上传

  • cfca证书密码,测试环境为000000,生产环境请修改为从cfca下载的正式证书的密码,并且在商户中心上传cfca证书并启用

  • 修改配置文件
    这里写图片描述

  • 引入ThinkPHP框架

    这里写图片描述

    .编写交易号获取接口
    这个接口为移动端提供,移动端提供订单号和金额,服务端生成交易号返回给移动端

<?php
namespace Api\Controller;
use Think\Controller;
header ( 'Content-type:text/html;charset=utf-8' );
vendor('sdk.acp_service');
vendor('sdk.SDKConfig');
class UnionpayController extends Controller{
   public function test(){
        $x=new \SDKConfig();
        $acp=new \AcpService();
        $orderid=I('orderid');
        $money=I('money');
        $params = array(   
        //以下信息非特殊情况不需要改动
        'version' => $x->version,             //版本号
        'encoding' => 'utf-8',                //编码方式
        'txnType' => '01',                    //交易类型
        'txnSubType' => '01',                 //交易子类
        'bizType' => '000201',                //业务类型
        'frontUrl' =>  $x->frontUrl,  //前台通知地址
        'backUrl' => $x->backUrl,    //后台通知地址
        'signMethod' =>$x->signMethod,  //签名方法
        'channelType' => '08', //渠道类型,07-PC,08-手机
        'accessType' => '0', //接入类型
        'currencyCode' => '156',//交易币种,境内商户固定156        
        //TODO 以下信息需要填写
        'merId' => "商户代码",
        //商户代码,请改自己的测试商户号
        'orderId' =>$orderid,  
        //商户订单号,8-32位数字字母,不能含“-”或“_”
        'txnTime' => date('YmdHis'),    
        //订单发送时间,格式为YYYYMMDDhhmmss,取北京时间
        'txnAmt' =>$money*100, //交易金额,单位分,
    );
     $acp->sign ( $params ); // 签名
     $url = $x->appTransUrl;
     $result_arr =$acp->post ($params,$url);
     if(count($result_arr)<=0) { //没收到200应答的情况
     printResult ($url, $params, "" );
     return;
}
if (!$acp->validate ($result_arr) ){
    return;
}
if ($result_arr["respCode"] == "00"){
    //成功
   $return['status']=1;
   $return['msg']="success";   
   $data['tn']=$result_arr["tn"];
   $return['data']['tn']= $data['tn'];
   $this->ajaxReturn($return, 'JSON');
  //后续请将此tn传给手机开发,他们用此tn调起控件后完成支付;
} else {
}
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/414950
推荐阅读
相关标签
  

闽ICP备14008679号