アリペイ証明書の署名PHP SDK

PHPアクセスAlipayの署名および証明書署名された検査

新しいPHP SDK(V4.1.0)に更新2019年10月25日の周りにアリペイ。PHP SDK(v3.4.2)は、公開鍵のみの承認をサポートする前に。この更新後PHP SDKも署名された証明書や検査に署名するために使用することができます。

アリペイ公式SDKをダウンロード

ダウンロードして、フォルダに入れたいプロジェクトに直接コピーされたフォルダ内のフォルダAOPファイル解凍し、例えば、拡張
フォルダを(CRT証明書ファイルをテストするには、同じディレクトリの証明書ディレクトリの下に置かれている)
ここに画像を挿入説明
SDKを改正します1つの小さなエラー:でAopCertClient.php
ラインがヌル方法有するかどうかについて478をチェックする
ここに画像を挿入説明
ように変更を

    if (method_exists($request, 'getApiVersion')){
        $iv = $request->getApiVersion();
    }else{
        $iv = $this->apiVersion;
    }

   
   

インポートドキュメント

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

   
   

AOP /テスト/ディレクトリから次のAopCertClientTest.phpを見つけるために(証明書の使用が署名されているように、公開鍵署名を使用する場合は、あなたがそれらを繰り返さない、AopClientTest.phpファイルを参照する必要があります)に直接関連するコードは、私のコピーとして変化コピーそれはあります

    //1、execute 使用
    $aop = new AopCertClient ();
    $appCertPath = "应用证书路径(要确保证书文件可读),例如:/home/admin/cert/appCertPublicKey.crt";
    $alipayCertPath = "支付宝公钥证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayCertPublicKey_RSA2.crt";
    $rootCertPath = "支付宝根证书路径(要确保证书文件可读),例如:/home/admin/cert/alipayRootCert.crt";
    
    $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
    $aop->appId = '你的appid';
    $aop->rsaPrivateKey = '你的应用私钥';
    $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获取证书序列号
    $aop->alipayRootCertSN = $aop->getRootCertSN($rootCertPath);//调用getRootCertSN获取支付宝根证书序列号
    
    $request = new AlipayTradeQueryRequest ();
    $request->setBizContent("{" .
        "\"out_trade_no\":\"20150320010101001\"," .
        "\"trade_no\":\"2014112611001004680 073956707\"," .
        "\"org_pid\":\"2088101117952222\"," .
        "      \"query_options\":[" .
        "        \"TRADE_SETTE_INFO\"" .
        "      ]" .
        "  }");
    $result = $aop->execute ( $request);
    var_dump($result);


   
   

私はAlipayのアカウントを転送するために単一のインターフェイスを使用したいので。
上記のコードので、2つの場所に変更されます。

    $request = new AlipayFundTransToaccountTransferRequest ();
    // 官方示例  切记要自己修改
    $request->setBizContent("{" .
    "\"out_biz_no\":\"3142321423432\"," .
    "\"payee_type\":\"ALIPAY_LOGONID\"," .
    "\"payee_account\":\"[email protected]\"," .
    "\"amount\":\"12.23\"," .
    "\"payer_show_name\":\"上海交通卡退款\"," .
    "\"payee_real_name\":\"张三\"," .
    "\"remark\":\"转账备注\"" .
    "  }");

   
   

変更が完了したら、あなたはテスト用のコードを実行することができます。

オリジナルます。https://blog.csdn.net/csd465038717/article/details/102748277

おすすめ

転載: www.cnblogs.com/showcase/p/12091141.html