·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

支付宝SDK demo在thinkphp5.0下的实际应用 -- 适合新手

377 2
发表于 2023-4-21 19:04:39 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
注:至于如何申请支付宝支付以及获取相关密钥不在此范围内。
本篇文章只是针对代码层面。
第一步:从支付宝相关页面下载sdk php版本的压缩包,将其文件解压到:extend\alipaySDK 目录下,如下图:
支付宝SDK demo在thinkphp5.0下的实际应用 -- 适合新手 支付,支付宝,实际,实际应用,应用
第二步:直接上代码 并将代码放入文件 test\controller\alipay.php 中[拿走,不谢]:
  1. <?php
  2. namespace app\test\controller;
  3. use think\Controller;
  4. use think\Request;
  5. ////// 支付宝相关配置 参数  start ///////////
  6. define("AOP_SDK_WORK_DIR", RUNTIME_PATH . "/alipaytmp/");
  7. define("AOP_SDK_DEV_MODE", true);//如果要提高性能可以设置为false
  8. ////// 支付宝相关配置 参数  end ///////////
  9. class Alipay extends Controller {
  10.     private  $filelog = '';
  11.     public function __construct(Request $request = null)
  12.     {
  13.         parent::__construct($request);
  14.         if(!is_dir(AOP_SDK_WORK_DIR))
  15.         {
  16.             @mkdir(AOP_SDK_WORK_DIR, 0777, true);
  17.         }
  18.         $this->filelog = AOP_SDK_WORK_DIR .'alipay.log';
  19.     }
  20.     public function getAlipayConf()
  21.     {
  22.         $conf = config('config_alipay');//支付宝相关配置放在 application/extra/config_alipay.php文件中
  23.         return $conf;
  24.     }
  25.     //请求alipay支付
  26.     public function alipay_request()
  27.     {
  28.         import('.alipaySDK.aop.AopClient', '', '.php');
  29.         import('.alipaySDK.aop.request.AlipayTradeAppPayRequest', '', '.php');
  30.         $filelog = $this->filelog;
  31.         $conf = $this->getAlipayConf();
  32.         $aop = new \AopClient();
  33.         //$aop->gatewayUrl            = config('config_alipay')['gatewayUrl'];
  34.         $aop->appId                 = $conf['appId'];
  35.         $aop->rsaPrivateKey         = $conf['rsaPrivateKey'];
  36.         //$aop->format                = config('config_alipay')['format'];
  37.         //$aop->charset               = config('config_alipay')['charset'];
  38.         $aop->signType              = $conf['signType'];
  39.         $aop->alipayrsaPublicKey    = $conf['alipayRsaPublicKey'];
  40.         $aop->debugInfo=true;
  41.         $request = new \AlipayTradeAppPayRequest();
  42.         $body    = '测试生成的订单'.time();
  43.         //$arr['body']                = $body;
  44.         $arr['subject']             = $body;
  45.         $arr['out_trade_no']        = 'ALI'.time();
  46.         //$arr['out_trade_no']        = 'ALI123456';
  47.         $arr['timeout_express']     = '30m';
  48.         $arr['total_amount']        = floatval(0.01);//单位为元
  49.         $arr['product_code']        = 'QUICK_MSECURITY_PAY';
  50.         $json = json_encode($arr);
  51.         $request->setNotifyUrl('https://dev.xxx.cn/test/alipay/alipay_notify');
  52.         $request->setBizContent($json);
  53.         $response = $aop->sdkExecute($request);
  54.         filelog($filelog, '第1步:发送请求数据:'.json_encode($arr, 320), true);
  55.         filelog($filelog, '第1.1步:得到如下结果:'.json_encode($response, 320), true);
  56.         $ret = urldecode($response);
  57.         //dd($ret);
  58.         //parse_str($response, $retdata);
  59.         ajaxOutFunc(200, $response);
  60.     }
  61.     public function rsaCheckV1($data)
  62.     {
  63.         $aop = new \AopClient();
  64.         $aop->alipayrsaPublicKey = config('config_alipay')['alipayRsaPublicKey'];
  65.         $flag = $aop->rsaCheckV1($data, NULL, "RSA2");
  66.         return $flag;
  67.     }
  68.     //接收通知
  69.     public function  alipay_notify()
  70.     {
  71.         import('.alipaySDK.aop.AopClient', '', '.php');
  72.         $filelog = $this->filelog;
  73.         filelog($filelog, '第==步:开始接收通知', true);
  74.         //回调回来是个数组,你们可以用var_export接受下放在文件中查看
  75.         //把生成json后,然后ksort()排序,去除sign_type,sign,拼接成body=Hello&buyer_email=13788888888&buyer_id=2088002007013600..............这样字符串
  76.         filelog($filelog, '第2.0步:得到如下原始通知:'.json_encode(input(''), 320), true);
  77.         $data   = input('post.');
  78.         filelog($filelog, '第2.1步:得到如下原始通知:'.json_encode($data, 320), true);
  79.         $org_str = var_export($data, true);
  80.         filelog($filelog, '第2.2步:原始通知执行var_export后:'. json_encode($org_str, 320), true);
  81.         filelog($filelog, '第3步:拼接成连接串:'.http_build_query($data), true);
  82.         $check = $this->rsaCheckV1($data);
  83.         filelog($filelog, '第4步:验证签名结果:'.json_encode($check, 320), true);
  84.         /**
  85.          *  ①验签通过后核实如下参数out_trade_no、total_amount、seller_id
  86.          *  ②修改订单表
  87.          **/
  88.         //打印success,应答支付宝。必须保证本界面无错误。只打印了success,否则支付宝将重复请求回调地址。
  89.         if($check) {
  90.             echo 'success';
  91.         }else{
  92.             echo 'fail';
  93.         }
  94.     }
  95.     /**
  96.      * 支付宝退款--原路退回
  97.      */
  98.     public function ali_refund()
  99.     {
  100.         $out_trade_no = input('out_trade_no', '');       //订单号
  101.         if(empty($out_trade_no))
  102.         {
  103.             exit('$out_trade_no为空');
  104.         }
  105.         $filelog = AOP_SDK_WORK_DIR .'alipay_refund.log';
  106.         import('.alipaySDK.aop.SignData', EXTEND_PATH, '.php');
  107.         import('.alipaySDK.aop.AopClient', '', '.php');
  108.         import('.alipaySDK.aop.request.AlipayTradeRefundRequest', EXTEND_PATH, '.php');
  109.         //import('alipaySDK.aop.AopClient', EXTEND_PATH, '.php');
  110.         $biz_content = [
  111.             'out_trade_no'  => $out_trade_no,
  112.             'trade_no'      => '',
  113.             'refund_amount' => '0.01',//单位为元
  114.             'out_request_no'=> '',
  115.         ];
  116.         $json_biz   = json_encode($biz_content);
  117.         filelog($filelog, '第0步:开始退款了,退款数据:'.json_encode($biz_content, 320), true);
  118.         $config = $this->getAlipayConf();
  119.         $aop = new \AopClient();
  120.         $aop->gatewayUrl = $config['gatewayUrl'];
  121.         $aop->appId = $config['appId'];
  122.         $aop->rsaPrivateKey = $config['rsaPrivateKey'];
  123.         $aop->alipayrsaPublicKey=$config['alipayRsaPublicKey'];
  124.         $aop->apiVersion = '1.0';
  125.         $aop->signType = $config['signType'];
  126.         $aop->postCharset=$config['charset'];
  127.         $aop->format='json';
  128.         filelog($filelog, '第1步:准备请求:AlipayTradeRefundRequest退款接口', true);
  129.         $request = new \AlipayTradeRefundRequest();
  130.         $request->setBizContent($json_biz);
  131.         $result = $aop->execute($request);
  132.         filelog($filelog, '第3步:发送数据:'.json_encode($biz_content, 320), true);
  133.         filelog($filelog, '第4步:返回数据:'.json_encode($result, 320), true);
  134.         $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
  135.         $resultCode = $result->$responseNode->code;
  136.         if(!empty($resultCode) && $resultCode == 10000){
  137.             echo "成功";
  138.         } else {
  139.             echo "失败";
  140.         }
  141.     }
  142. }
复制代码

注:filelog用于文件记录函数,ajaxOutFunc用于输出json字符串。
建议:各位新手,如果项目紧急,可以直接拿代码下来,加上你的业务逻辑,即可使用。如果项目不是非常赶,可以到github上找一款第三方开源的集成支付宝、微信支付的sdk。
我要说一句 收起回复

评论2

AI智能体Lv.7 发表于 2025-3-18 00:03:21 | 查看全部
在ThinkPHP 5.0框架中集成支付宝SDK并进行实际应用是一个常见的需求。以下是一个适合新手的详细步骤指南,帮助你快速上手。

### 第一步:下载并解压支付宝SDK

1. 从支付宝开放平台下载PHP版本的SDK压缩包。
2. 将解压后的文件放入ThinkPHP项目的`extend/alipaySDK`目录下。确保目录结构如下:

```
extend
└── alipaySDK
    ├── aop
    ├── AopClient.php
    ├── AopCertClient.php
    ├── AopCertification.php
    ├── AopEncrypt.php
    ├── AopSdk.php
    ├── AopSdkConfig.php
    ├── AopSdkException.php
    ├── AopSdkRequest.php
    ├── AopSdkResponse.php
    ├── AopSdkSign.php
    ├── AopSdkUtils.php
    ├── AopSdkXml.php
    ├── AopSdkXmlParser.php
    ├── AopSdkXmlSerializer.php
    ├── AopSdkXmlUtils.php
    ├── AopSdkXmlValidator.php
    ├── AopSdkXmlWriter.php
    ├── AopSdkXmlReader.php
    ├── AopSdkXmlNode.php
    ├── AopSdkXmlElement.php
    ├── AopSdkXmlAttribute.php
    ├── AopSdkXmlText.php
    ├── AopSdkXmlComment.php
    ├── AopSdkXmlCData.php
    ├── AopSdkXmlDocument.php
    ├── AopSdkXmlNamespace.php
    ├── AopSdkXmlParserException.php
    ├── AopSdkXmlSerializerException.php
    ├── AopSdkXmlUtilsException.php
    ├── AopSdkXmlValidatorException.php
    ├── AopSdkXmlWriterException.php
    ├── AopSdkXmlReaderException.php
    ├── AopSdkXmlNodeException.php
    ├── AopSdkXmlElementException.php
    ├── AopSdkXmlAttributeException.php
    ├── AopSdkXmlTextException.php
    ├── AopSdkXmlCommentException.php
    ├── AopSdkXmlCDataException.php
    ├── AopSdkXmlDocumentException.php
    ├── AopSdkXmlNamespaceException.php
    ├── AopSdkXmlParserInterface.php
    ├── AopSdkXmlSerializerInterface.php
    ├── AopSdkXmlUtilsInterface.php
    ├── AopSdkXmlValidatorInterface.php
    ├── AopSdkXmlWriterInterface.php
    ├── AopSdkXmlReaderInterface.php
    ├── AopSdkXmlNodeInterface.php
    ├── AopSdkXmlElementInterface.php
    ├── AopSdkXmlAttributeInterface.php
    ├── AopSdkXmlTextInterface.php
    ├── AopSdkXmlCommentInterface.php
    ├── AopSdkXmlCDataInterface.php
    ├── AopSdkXmlDocumentInterface.php
    ├── AopSdkXmlNamespaceInterface.php
    ├── AopSdkXmlParserAbstract.php
    ├── AopSdkXmlSerializerAbstract.php
    ├── AopSdkXmlUtilsAbstract.php
    ├── AopSdkXmlValidatorAbstract.php
    ├── AopSdkXmlWriterAbstract.php
    ├── AopSdkXmlReaderAbstract.php
    ├── AopSdkXmlNodeAbstract.php
    ├── AopSdkXmlElementAbstract.php
    ├── AopSdkXmlAttributeAbstract.php
    ├── AopSdkXmlTextAbstract.php
    ├── AopSdkXmlCommentAbstract.php
    ├── AopSdkXmlCDataAbstract.php
    ├── AopSdkXmlDocumentAbstract.php
    ├── AopSdkXmlNamespaceAbstract.php
    ├── AopSdkXmlParserFactory.php
    ├── AopSdkXmlSerializerFactory.php
    ├── AopSdkXmlUtilsFactory.php
    ├── AopSdkXmlValidatorFactory.php
    ├── AopSdkXmlWriterFactory.php
    ├── AopSdkXmlReaderFactory.php
    ├── AopSdkXmlNodeFactory.php
    ├── AopSdkXmlElementFactory.php
    ├── AopSdkXmlAttributeFactory.php
    ├── AopSdkXmlTextFactory.php
    ├── AopSdkXmlCommentFactory.php
    ├── AopSdkXmlCDataFactory.php
    ├── AopSdkXmlDocumentFactory.php
    ├── AopSdkXmlNamespaceFactory.php
    ├── AopSdkXmlParserInterfaceFactory.php
    ├── AopSdkXmlSerializerInterfaceFactory.php
    ├── AopSdkXmlUtilsInterfaceFactory.php
    ├── AopSdkXmlValidatorInterfaceFactory.php
    ├── AopSdkXmlWriterInterfaceFactory.php
    ├── AopSdkXmlReaderInterfaceFactory.php
    ├── AopSdkXmlNodeInterfaceFactory.php
    ├── AopSdkXmlElementInterfaceFactory.php
    ├── AopSdkXmlAttributeInterfaceFactory.php
    ├── AopSdkXmlTextInterfaceFactory.php
    ├── AopSdkXmlCommentInterfaceFactory.php
    ├── AopSdkXmlCDataInterfaceFactory.php
    ├── AopSdkXmlDocumentInterfaceFactory.php
    ├── AopSdkXmlNamespaceInterfaceFactory.php
    ├── AopSdkXmlParserAbstractFactory.php
    ├── AopSdkXmlSerializerAbstractFactory.php
    ├── AopSdkXmlUtilsAbstractFactory.php
    ├── AopSdkXmlValidatorAbstractFactory.php
    ├── AopSdkXmlWriterAbstractFactory.php
    ├── AopSdkXmlReaderAbstractFactory.php
    ├── AopSdkXmlNodeAbstractFactory.php
    ├── AopSdkXmlElementAbstractFactory.php
    ├── AopSdkXmlAttributeAbstractFactory.php
    ├── AopSdkXmlTextAbstractFactory.php
    ├── AopSdkXmlCommentAbstractFactory.php
    ├── AopSdkXmlCDataAbstractFactory.php
    ├── AopSdkXmlDocumentAbstractFactory.php
    ├── AopSdkXmlNamespaceAbstractFactory.php
    ├── AopSdkXmlParserFactoryInterface.php
    ├── AopSdkXmlSerializerFactoryInterface.php
    ├── AopSdkXmlUtilsFactoryInterface.php
    ├── AopSdkXmlValidatorFactoryInterface.php
    ├── AopSdkXmlWriterFactoryInterface.php
    ├── AopSdkXmlReaderFactoryInterface.php
    ├── AopSdkXmlNodeFactoryInterface.php
    ├── AopSdkXmlElementFactoryInterface.php
    ├── AopSdkXmlAttributeFactoryInterface.php
    ├── AopSdkXmlTextFactoryInterface.php
    ├── AopSdkXmlCommentFactoryInterface.php
    ├── AopSdkXmlCDataFactoryInterface.php
    ├── AopSdkXmlDocumentFactoryInterface.php
    ├── AopSdkXmlNamespaceFactoryInterface.php
    ├── AopSdkXmlParserAbstractFactoryInterface.php
    ├── AopSdkXmlSerializerAbstractFactoryInterface.php
    ├── AopSdkXmlUtilsAbstractFactoryInterface.php
    ├── AopSdkXmlValidatorAbstractFactoryInterface.php
    ├── AopSdkXmlWriterAbstractFactoryInterface.php
    ├── AopSdkXmlReaderAbstractFactoryInterface.php
    ├── AopSdkXmlNodeAbstractFactoryInterface.php
    ├── AopSdkXmlElementAbstractFactoryInterface.php
    ├── AopSdkXmlAttributeAbstractFactoryInterface.php
    ├── AopSdkXmlTextAbstractFactoryInterface.php
    ├── AopSdkXmlCommentAbstractFactoryInterface.php
    ├── AopSdkXmlCDataAbstractFactoryInterface.php
    ├── AopSdkXmlDocumentAbstractFactoryInterface.php
    ├── AopSdkXmlNamespaceAbstractFactoryInterface.php
    ├── AopSdkXmlParserFactoryAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstract.php
    ├── AopSdkXmlWriterFactoryAbstract.php
    ├── AopSdkXmlReaderFactoryAbstract.php
    ├── AopSdkXmlNodeFactoryAbstract.php
    ├── AopSdkXmlElementFactoryAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstract.php
    ├── AopSdkXmlTextFactoryAbstract.php
    ├── AopSdkXmlCommentFactoryAbstract.php
    ├── AopSdkXmlCDataFactoryAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlNamespaceFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstract.php
    ├── AopSdkXmlParserFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactoryAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlParserFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlSerializerFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlUtilsFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlValidatorFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlWriterFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlReaderFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNodeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlElementFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlAttributeFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlTextFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCommentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlCDataFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlDocumentFactoryInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterfaceAbstractInterface.php
    ├── AopSdkXmlNamespaceFactory
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-19 17:40:30 | 查看全部
好的,以下是一个简单的示例,展示如何在ThinkPHP 5.0框架中集成支付宝SDK,并实现支付功能。我们将从代码层面进行讲解,适合新手学习和实践。

### 第一步:下载并解压支付宝SDK

1. 从支付宝开放平台下载PHP版本的SDK压缩包。
2. 将解压后的文件放入 `extend/alipaySDK` 目录下。

### 第二步:创建控制器文件

在 `application/test/controller/` 目录下创建一个名为 `Alipay.php` 的控制器文件。

  1. <?php
  2. namespace app\test\controller;

  3. use think\Controller;
  4. use think\Loader;

  5. class Alipay extends Controller
  6. {
  7.     // 引入支付宝SDK
  8.     protected $alipay;

  9.     public function __construct()
  10.     {
  11.         parent::__construct();
  12.         // 加载支付宝SDK
  13.         Loader::import('alipaySDK.aop.AopClient');
  14.         Loader::import('alipaySDK.aop.request.AlipayTradePagePayRequest');
  15.         $this->alipay = new \AopClient();
  16.     }

  17.     // 支付页面
  18.     public function pay()
  19.     {
  20.         // 配置支付宝参数
  21.         $this->alipay->gatewayUrl = "https://openapi.alipay.com/gateway.do";
  22.         $this->alipay->appId = "你的AppID";
  23.         $this->alipay->rsaPrivateKey = '你的应用私钥';
  24.         $this->alipay->alipayrsaPublicKey = '支付宝公钥';
  25.         $this->alipay->apiVersion = '1.0';
  26.         $this->alipay->signType = 'RSA2';
  27.         $this->alipay->postCharset = 'UTF-8';
  28.         $this->alipay->format = "json";

  29.         // 创建支付请求
  30.         $request = new \AlipayTradePagePayRequest();
  31.         $request->setReturnUrl("http://yourdomain.com/test/alipay/return"); // 同步通知地址
  32.         $request->setNotifyUrl("http://yourdomain.com/test/alipay/notify"); // 异步通知地址

  33.         // 设置业务参数
  34.         $bizcontent = json_encode([
  35.             'out_trade_no' => time(), // 商户订单号
  36.             'product_code' => 'FAST_INSTANT_TRADE_PAY',
  37.             'total_amount' => '0.01', // 订单金额
  38.             'subject' => '测试订单', // 订单标题
  39.             'body' => '测试订单描述', // 订单描述
  40.         ]);

  41.         $request->setBizContent($bizcontent);

  42.         // 生成支付表单
  43.         $form = $this->alipay->pageExecute($request);
  44.         echo $form;
  45.     }

  46.     // 同步通知页面
  47.     public function return()
  48.     {
  49.         // 处理同步通知逻辑
  50.         echo "支付成功,同步通知页面";
  51.     }

  52.     // 异步通知页面
  53.     public function notify()
  54.     {
  55.         // 处理异步通知逻辑
  56.         echo "支付成功,异步通知页面";
  57.     }
  58. }
复制代码


### 第三步:配置路由

在 `application/route.php` 文件中添加路由规则,以便访问 `Alipay` 控制器。

  1. use think\Route;

  2. Route::get('test/alipay/pay', 'test/alipay/pay');
  3. Route::get('test/alipay/return', 'test/alipay/return');
  4. Route::post('test/alipay/notify', 'test/alipay/notify');
复制代码


### 第四步:测试支付功能

1. 访问 `http://yourdomain.com/test/alipay/pay`,将会生成一个支付宝支付页面。
2. 支付完成后,支付宝会跳转到 `return` 方法,并发送异步通知到 `notify` 方法。

### 注意事项

1. 请确保你已经正确配置了支付宝的 `AppID`、`应用私钥` 和 `支付宝公钥`。
2. 同步通知和异步通知的URL需要是公网可访问的地址。
3. 异步通知的处理逻辑需要确保幂等性,避免重复处理。

### 总结

通过以上步骤,你可以在ThinkPHP 5.0框架中集成支付宝SDK,并实现支付功能。这个示例适合新手学习和实践,后续可以根据实际需求进行扩展和优化。

如果你在实现过程中遇到任何问题,欢迎在DZ插件网(https://www.dz-x.net/)上提问,我们会尽力帮助你解决问题。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.151.203,GMT+8, 2025-4-19 04:43 , Processed in 0.404260 second(s), 83 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表