开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 141|回复: 0
收起左侧

[精币悬赏] php代码转易语言

[复制链接]
结帖率:78% (32/41)
发表于 2024-8-20 22:23:17 | 显示全部楼层 |阅读模式   上海市上海市
5精币
求帮忙写个案列   php代码翻译易语言如何让写
[PHP] 纯文本查看 复制代码
<?php

//require_once 'aop/AopCertClient.php';
//require_once 'aop/AopCertification.php';
//require_once 'aop/request/AlipayTradeQueryRequest.php';
//require_once 'aop/request/AlipayTradeWapPayRequest.php';
//require_once 'aop/request/AlipayOpenOperationOpenbizmockBizQueryRequest.php';

//$aop = new AopCertClient ();
$appCertPath = dirname(__FILE__) . "\appCertPublicKey_2021002180699711.crt";

$alipayCertPath = dirname(__FILE__) . "\alipayCertPublicKey_RSA2.crt";

$certContent = dirname(__FILE__) . "\alipayRootCert.crt";

//$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';

//$aop->appId = '2021002180699711';

//$aop->rsaPrivateKey = 'MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCAa1Bn04GbHPPPqntp31OeMS3DBaD35IkiWuUCCK9MqYVGkpG3fd5X24TActIyCTlWpOq69pKoin7ifcvbZodNrbYn51rN4JpgOjCXW1Cn85DxVPzxRNAJlvgpauTgC86/EFaWKqmThe8pCX/v2WGJlOS7UBsmv8x9UG1PZGldMOqkF3qbQP8jBfAGWpGI1d1WVRscAMxMFE74n13g/jj7NZSSRXTiIC82zcGad+tvDnVZ5KvkI6UT9DutgqRWmhQkXE8f9NYQjjEmA1FXkl9USgxnAUgLY+2gFq+W5/JQJJOAiT57pZolDWMuZtOWQiVXTm24p/hc0MYxxsX85khTAgMBAAECggEAFTWkKgG8vimh+wJlL6862D23GSas10RfgdURTayxhy/YWzeJ6YxYVJpk6oQMQ0dSuQSz3/0pa7y0CCROrwXYAvRVyXFkhew6kvoJXHYwdAy+O52VySNcWLkec3i8JGTO2K+SHWseZscQIO74ulxkx5xXyrgIQ/YZh/jolNw4qrNVkJffU4JmID3sD3nQ/7C00JyPqUJsCOxUROdmy9G2y75mZ1NO1T6JmE9UNveMPVfL5GtDKEDLLRnZcJE1vQzhyESKLoEu15rjMUbZSIUKP4c/0eqGqTRjTEgYwTvC5FItMfI/D/JXST7SEUICyh6ccgpiIHjGxFDYBT6x0GdZQQKBgQC/26c+azrm6R5hzyvdWuN/vtTxZEoXkEJlCKyo665umAv6PblOY6yNMyIbDfhcy8LsDqnZ2cJOXjfKbTZHubH3+Lb743z5V3JnGEs515o3wB+BYnGFXYVxn6gX6a23nYoDOIQyZfmaJSbXGOOoaK+EfVLmJ+EIA7qvgZTjz2RdnwKBgQCrWjCpqOM90PylK+FOWWytaCpx2506DAk6s1B3lAvNeY42Gmt18uClEaZvVw1jYewlSq6gYnVQU5tdhCll7OFTfKrBGD/rRgdJ3EmIeQIeAqEA3hi79/eK7vHI1u+VU7CqS3BOERkAq++9dzyv57ixfIp5HjylHIxuVlnUMpawzQKBgAoby6MJSVAzRiuHG9uM12G6r0OMsi6tpiHmpBo+WLFxB2iG6gWMUOIbqJdeVBCnl7ySRTa6N3ejlTLwMCT1TsAu9Y0t/j6w8dEmwYfpqTF4yPArPKn3NHm5HMUtxb5f6Y6j4qs5Hj6V6Ib6w7vy0BSd+ckwnrWqZKKspCigm7wnAoGAC+bPynj4j6qcYbySgaakbcb2a8IdQZLkcTdTN3sI9tSilA9xt1ePUufO75zUSTrb9Bsj1fAAxfuIpw4u8e1qGSpnkdHlXqoWh4LNeLUu+HamSDEk9qlagEPod1K2gWC2vJ1Qx5tYaTuIA1js1ir6IRnNZGw9OhqphmBpDNwWq2ECgYAQoSkjYpaGRP4ugw4QP5s2THvK2zgUvvM5RGYLvgMkwIE4T+Gfc9rbaYFQfCBz+ryFYFXjetMQ9onDiD95868nd+gioEaPQgSmCOlyNytn0DLrNucYKa7KSLAMu4pe2Ves7+YILHU7GvPK6JEK9z6PYO43fbtu/TyxYdWyQzVkfw==';

//$aop->alipayrsaPublicKey = $aop->getPublicKey($alipayCertPath);//调用getPublicKey从支付宝公钥证书中提取公钥

//$aop->apiVersion = '1.0';

//$aop->signType = 'RSA2';

//$aop->postCharset = 'utf-8';

//$aop->format = 'json';

//$aop->isCheckAlipayPublicCert = true;//是否校验自动下载的支付宝公钥证书,如果开启校验要保证支付宝根证书在有效期内

//$aop->appCertSN = $aop->getCertSN($appCertPath);//调用getCertSN获取证书序列号

$p = [];

$str = file_get_contents($certContent );
$p["alipay_root_cert_sn"] = getRootCertSN($str);

$str = file_get_contents('./alipayCertPublicKey_RSA2.crt');
$p["alipay_cert_sn"] = getCertSN($str);
$str = file_get_contents($appCertPath);
$p["app_cert_sn"] = getCertSN($str);

var_export($p);

function getRootCertSN($str)
{
    $arr = preg_split('/(?=-----BEGIN)/', $str, -1, PREG_SPLIT_NO_EMPTY);
     var_dump($arr );
    $str = null;
    foreach ($arr as $e) {
        $sn = getCertSN($e, true);

        if (!$sn)
            continue;
        if ($str === null)
            $str = $sn;
        else
            $str .= "_" . $sn;
    }
    return $str;
}

function getCertSN($str, $matchAlgo=false)
{
    /*
    根据java SDK源码:AntCertificationUtil::getRootCertSN
    对证书链中RSA的项目进行过滤(猜测是gm国密算法java抛错搞不定,故意略去)
    java源码为:

        if(c.getSigAlgOID().startsWith("1.2.840.113549.1.1"))

    根据 https://www.alvestrand.no/objectid/1.2.840.113549.1.1.html
    该OID为RSA算法系。
    */
    if ($matchAlgo) {
        openssl_x509_export($str, $out, false);
        if (!preg_match('/Signature Algorithm:.*?RSA/im', $out, $m))
            return;
    }

    $a = openssl_x509_parse($str);

    $issuer = null;
    // 注意:根据java代码输出,需要倒着排列 CN,OU,O
    foreach ($a["issuer"] as $k=>$v) {
        if ($issuer === null) {
            $issuer = "$k=$v";
        }
        else {
            $issuer = "$k=$v," . $issuer;
          //echo $issuer ."<br>";
            //echo $a["serialNumber"] ."<br>";
        }
    }
    $sn = md5($issuer . $a["serialNumber"]);
    return $sn;
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表