这边是使用银联的统一收银台

第一步:下载demo


路径:https://open.unionpay.com/tjweb/acproduct/list?apiSvcId=3021&index=4

第二步:把SDK里的文件放到你的项目目录里
  
第三步:修改证书路径
  
   图片的路径根据自己需求
   我这边是用的宝塔部署,所以用的是绝对路径
第四步:修改SDK命名路径 

第五步就可以开始写了
<?php 
class NetPay { 
protected $_config; 
public function __construct($config = []){ 
if(!$config){ 
$config = [ 
//以下信息非特殊情况不需要改动 
'version' => SDKConfig::getSDKConfig()->version, //版本号 
'encoding' => 'utf-8', //编码方式 
'txnType' => '01', //交易类型 
'txnSubType' => '01', //交易子类 
'bizType' => '000201', //业务类型 
'frontUrl' => SDKConfig::getSDKConfig()->frontUrl, //前台通知地址 
'backUrl' => SDKConfig::getSDKConfig()->backUrl, //后台通知地址 
'signMethod' => SDKConfig::getSDKConfig()->signMethod, //签名方法 
'channelType' => '08', //渠道类型,07-PC,08-手机 
'accessType' => '0', //接入类型 
'currencyCode' => '156', //交易币种,境内商户固定156 
'merId' => '777290058110048', //商户代码,请改自己的测试商户号,此处默认取demo演示页面传递的参数 
]; 
} 
$this->_config = $config; 
}
 public function pay($orderId){ 
$this->_config['orderId'] = $orderId; 
$this->_config['txnTime'] = '20211104164502';//订单发送时间,格式为YYYYMMDDhhmmss,取北京时间 
$this->_config['txnAmt'] = 1; //交易金额,单位分 
AcpService::sign($this->_config); 
$url =SDKConfig::getSDKConfig()->appTransUrl; 
$result_arr = AcpService::post($this->_config,$url); 
if(count($result_arr)<=0) { 
//没收到200应答的情况 
printResult ($url, $this->_config, "" ); 
return; } 
if (!AcpService::validate ($result_arr) ){ 
echo "应答报文验签失败<br>\n"; return; 
} if ($result_arr["respCode"] == "00"){ 
//成功 
//TODO 
echo "成功接收tn:" . $result_arr["tn"] . "<br>\n"; 
echo "后续请将此tn传给手机开发,由他们用此tn调起控件后完成支付。<br>\n"; 
echo "手机端demo默认从仿真获取tn,仿真只返回一个tn,如不想修改手机和后台间的通讯方式,【此页面请修改代码为只输出tn】。<br>\n"; 
} else { 
//其他应答码做以失败处理 
//TODO 
echo "失败:" . $result_arr["respMsg"] . "。<br>\n"; 
} 
} 
}

对应的数据传值调用,没有验证过,我是在tp6里面写的测试,数据也是测试,还没正式测,只做参考,后面完善再更新

发表回复

您的电子邮箱地址不会被公开。