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

1 篇文章 0 订阅
1 篇文章 0 订阅

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 {
}
}
}
  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
thinkphp5 可以通过支付宝开放平台的 SDK 来对接支付支付功能。首先,我们需要在 thinkphp5 的项目中引入支付宝 SDK,可以通过 Composer 来安装 SDK,或者手动下载 SDK 的包来引入。接下来,我们需要在项目中配置支付支付的参数,如支付宝的AppID、App 私钥、支付宝公钥等。这些参数可以在支付宝开放平台开发者中心进行获取。 在配置好参数后,我们可以在 thinkphp5 的控制器中编写代码来实现支付支付的功能。一般来说,支付支付的流程包括生成支付订单、跳转到支付页面、支付成功回调等步骤。我们可以通过调用支付宝 SDK 提供的相方法来完成这些步骤。 首先,我们可以使用 SDK 提供的方法来生成支付订单,并将订单信息保存在数据库或其他地方。然后,我们可以使用 SDK 提供的方法来生成支付表单,将用户重定向到支付宝的支付页面上。用户在支付页面上完成支付后,支付宝会将支付结果返回给我们的网站,我们可以通过配置支付宝回调地址,并编写回调方法来接收支付结果。 在接收到支付结果后,我们可以根据支付结果更新订单的状态,并做相应的业务逻辑处理。例如,如果支付成功,我们可以将订单状态改为已支付,并向用户展示支付成功的页面。 综上所述,通过引入支付宝 SDK,配置相参数,编写相应的代码,我们就可以在 thinkphp5 中实现支付支付功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值