You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
240 lines
8.9 KiB
PHP
240 lines
8.9 KiB
PHP
<?php
|
|
|
|
namespace App\Helper\Efps;
|
|
|
|
use App\Helper\Efps\Request\UnifiedPaymentRequest;
|
|
use App\Helper\StringHelper;
|
|
|
|
class Api extends AbstractApi
|
|
{
|
|
public static function register($params)
|
|
{
|
|
$merId = $params['merId'] ?? '';
|
|
$backUrl = $params['backUrl'] ?? '';
|
|
$certificateName = $params['certificateName'] ?? '';
|
|
$lawyerCertType = $params['lawyerCertType'] ?? 0;
|
|
$lawyerCertNo = $params['lawyerCertNo'] ?? '';
|
|
$lawyerCertPhotoFront = $params['lawyerCertPhotoFront'] ?? '';
|
|
$lawyerCertPhotoBack = $params['lawyerCertPhotoBack'] ?? '';
|
|
$certificateTo = $params['certificateTo'] ?? '';
|
|
$contactPhone = $params['contactPhone'] ?? '';
|
|
$accountType = $params['accountType'] ?? 3;
|
|
$canDownType = $params['canDownType'] ?? '01';
|
|
|
|
$uri = '/api/cust/SP/Personal/apply';
|
|
$params = [
|
|
'version' => '3.0',
|
|
'acqSpId' => self::getConfig('customerCode'),
|
|
'merId' => $merId,
|
|
'backUrl' => $backUrl,
|
|
'certificateName' => $certificateName,
|
|
'lawyerCertType' => $lawyerCertType,
|
|
'lawyerCertNo' => $lawyerCertNo,
|
|
'lawyerCertPhotoFront' => $lawyerCertPhotoFront,
|
|
'lawyerCertPhotoBack' => $lawyerCertPhotoBack,
|
|
'certificateTo' => $certificateTo,
|
|
'contactPhone' => $contactPhone,
|
|
'accountType' => $accountType,
|
|
'canDownType' => $canDownType,
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function bindCard($params)
|
|
{
|
|
$memberId = $params['memberId'] ?? '';
|
|
$mchtOrderNo = $params['mchtOrderNo'] ?? StringHelper::generateOrderNo();
|
|
$userName = $params['userName'] ?? '';
|
|
$phoneNum = $params['phoneNum'] ?? '';
|
|
$bankCardNo = $params['bankCardNo'] ?? '';
|
|
$bankCardType = $params['bankCardType'] ?? '';
|
|
$certificatesNo = $params['certificatesNo'] ?? '';
|
|
$expired = $params['expired'] ?? '';
|
|
$cvn = $params['cvn'] ?? '';
|
|
|
|
$uri = '/api/txs/protocol/bindCard';
|
|
$params = [
|
|
'version' => '2.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'mchtOrderNo' => $mchtOrderNo,
|
|
'memberId' => $memberId,
|
|
'isSendIssuer' => true,
|
|
'userName' => Signer::publicEncrypt($userName),
|
|
'phoneNum' => Signer::publicEncrypt($phoneNum),
|
|
'bankCardNo' => Signer::publicEncrypt($bankCardNo),
|
|
'bankCardType' => $bankCardType,
|
|
'certificatesType' => '01',
|
|
'certificatesNo' => Signer::publicEncrypt($certificatesNo),
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
if ($bankCardType == 'credit') {
|
|
$params['expired'] = Signer::publicEncrypt($expired);
|
|
$params['cvn'] = Signer::publicEncrypt($cvn);
|
|
}
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function bindCardConfirm($params)
|
|
{
|
|
$smsNo = $params['smsNo'] ?? '';
|
|
$smsCode = $params['smsCode'] ?? '';
|
|
$memberId = $params['memberId'] ?? '';
|
|
$uri = '/api/txs/protocol/bindCardConfirm';
|
|
$params = [
|
|
'version' => '2.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'smsNo' => $smsNo,
|
|
'memberId' => $memberId,
|
|
'smsCode' => $smsCode,
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function unBindCard($params)
|
|
{
|
|
$protocol = $params['protocol'] ?? '';
|
|
$memberId = $params['memberId'] ?? '';
|
|
$uri = '/api/txs/protocol/unBindCard';
|
|
$params = [
|
|
'version' => '2.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'protocol' => $protocol,
|
|
'memberId' => $memberId,
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function protocolPayPre($params)
|
|
{
|
|
$outTradeNo = $params['outTradeNo'] ?? StringHelper::generateOrderNo();
|
|
$protocol = $params['protocol'] ?? '';
|
|
$smsNo = $params['smsNo'] ?? '';
|
|
$smsCode = $params['smsCode'] ?? '';
|
|
$payAmount = $params['payAmount'] ?? 0;
|
|
$orderInfo = [];
|
|
$orderInfo['Id'] = $outTradeNo;
|
|
$orderInfo['businessType'] = '130001';
|
|
$orderInfo['goodsList'] = [['name' => 'pay', 'number' => '1', 'amount' => $payAmount]];
|
|
|
|
$uri = '/api/txs/protocol/protocolPayPre';
|
|
$params = [
|
|
'version' => '3.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'outTradeNo' => $outTradeNo,
|
|
'orderInfo' => $orderInfo,
|
|
'payAmount' => $payAmount,
|
|
'payCurrency' => 'CNY',
|
|
'isInstalments' => 0,
|
|
'isSendSmsCode' => 2,
|
|
'notifyUrl' => env('WEB_HOST') . '/notify/payment',
|
|
'transactionStartTime' => date('YmdHis'),
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
if ($protocol) {
|
|
$params['protocol'] = $protocol;
|
|
} else {
|
|
$params['smsCode'] = $smsCode;
|
|
$params['smsNo'] = $smsNo;
|
|
}
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function protocolPayConfirm($params)
|
|
{
|
|
$smsCode = $params['smsCode'] ?? '';
|
|
$protocol = $params['protocol'] ?? '';
|
|
$token = $params['token'] ?? '';
|
|
$uri = '/api/txs/protocol/protocolPayConfirm';
|
|
$params = [
|
|
'version' => '3.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'token' => $token,
|
|
'protocol' => $protocol,
|
|
'smsCode' => $smsCode,
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function refund($params)
|
|
{
|
|
$uri = '/api/txs/pay/Refund/V2';
|
|
$outRefundNo = $params['outRefundNo'] ?? '';
|
|
$outTradeNo = $params['outTradeNo'] ?? '';
|
|
$refundAmount = $params['refundAmount'] ?? 0;
|
|
$amount = $params['amount'] ?? 0;
|
|
$remark = $params['remark'] ?? '';
|
|
|
|
$params = [
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'outRefundNo' => $outRefundNo,
|
|
'outTradeNo' => $outTradeNo,
|
|
'refundAmount' => $refundAmount,
|
|
'amount' => $amount,
|
|
'remark' => $remark,
|
|
'notifyUrl' => env('WEB_HOST') . '/notify/refund',
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function refundQuery($params)
|
|
{
|
|
$uri = '/api/txs/custPay/refundQuery';
|
|
$outRefundNo = $params['outRefundNo'] ?? '';
|
|
|
|
$params = [
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'outRefundNo' => $outRefundNo,
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function paymentQuery($params)
|
|
{
|
|
$uri = '/api/txs/pay/PaymentQuery';
|
|
$outTradeNo = $params['outTradeNo'] ?? '';
|
|
|
|
$params = [
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'outTradeNo' => $outTradeNo,
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
|
|
public static function withdrawalToCard($params)
|
|
{
|
|
$bankUserName = $params['bankUserName'] ?? '';
|
|
$bankUserCert = $params['bankUserCert'] ?? '';
|
|
$bankCardNo = $params['bankCardNo'] ?? '';
|
|
$uri = '/api/txs/pay/withdrawalToCard';
|
|
$params = [
|
|
'version' => '3.0',
|
|
'customerCode' => self::getConfig('customerCode'),
|
|
'outTradeNo' => time() . rand(1000, 9999),
|
|
'bankName' => '工商银行',
|
|
'amount' => 1,
|
|
'bankUserName' => Signer::publicEncrypt('饶丽秀'),
|
|
'bankUserCert' => Signer::publicEncrypt('350824199001045864'),
|
|
'bankCardNo' => Signer::publicEncrypt('6212261402022689613'),
|
|
'bankAccountType' => 2,
|
|
'payCurrency' => 'CNY',
|
|
'nonceStr' => StringHelper::getRandomString(32),
|
|
];
|
|
$sign = Signer::sign(json_encode($params));
|
|
return self::request($uri, $params, $sign);
|
|
}
|
|
} |