| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- <?php
- namespace common\pay\trustpay;
- class PayUtils
- {
- /** 加密函数
- * @param array $data
- * @return string
- */
- public static function makeSign($data, $privateKey)
- {
- $MerchantID = $data['MerchantID']; //支付平台商户号
- $OrderNo = $data['OrderNo']; //平台订单号码
- $ProductName = $data['ProductName']; //商品名称
- $Amount = $data['Amount']; //总金额
- $CallBackUrl = $data['CallBackUrl']; //回调地址
- $str = "{$MerchantID}"."{$OrderNo}"."{$ProductName}"."{$Amount}"."{$CallBackUrl}";
- file_put_contents('tp_str_befor.txt',$str);
- $rsa = openssl_pkey_get_private(file_get_contents($privateKey));
- if (empty($rsa))
- {
- echo "private key resource identifier False!";
- return False;
- }
- openssl_sign($str, $sign, $rsa);
- $sign = base64_encode($sign);
- file_put_contents('tp_str_after.txt',$sign);
- return $sign;
- }
- /** 解密函数
- * @param array $data
- * @param $pubCert
- * @return bool|int
- */
- public static function verify($data, $pubCert)
- {
- // 签名
- if (!isset($data['Sign']) || trim($data['Sign']) === '') {
- return false;
- }
- $sign = $data['Sign']; //获得数据中的sign
- unset($data['Sign']); //删除数据中的字段
- $MerchantID = $data['MerchantID']; //支付平台商户号
- $OrderNo = $data['OrderNo']; //平台订单号码
- $MerchantOrderNo = $data['MerchantOrderNo']; //商品名称
- $Status = $data['Status']; //回调地址
- $Amount = sprintf("%.2f",$data['Amount']); //总金额
- $temp = "{$MerchantID}"."{$OrderNo}"."{$MerchantOrderNo}"."{$Status}"."{$Amount}"; //加密字符串
-
- $pubKey = openssl_pkey_get_public(file_get_contents($pubCert));
- return (bool)openssl_verify($temp, base64_decode($sign), $pubKey);
-
- }
- }
|