qianlizeguo/yii2-alipay
Composer 安装命令:
composer require qianlizeguo/yii2-alipay
包简介
alipay for Yii2
README 文档
README
1.0.4
支付宝的Yii2扩展包,支持支付宝所有接口,只需更换对应接口的参数即可!
Install With Composer
The preferred way to install this extension is through composer.
Either run
php composer.phar require qianlizeguo/yii2-alipay "*"
or for the dev-master
php composer.phar require qianlizeguo/yii2-alipay "dev"
Or, you may add
"qianlizeguo/yii2-alipay": "*"
to the require section of your composer.json file and execute php composer.phar update.
Usage
Once the extension is installed, simply modify your application configuration as follows:
return [ 'alipayPartner' => '2088411622500000', 'alipaySellerEmail' => 'xxx@xxx.com.cn', 'alipayKey' => 'j8zjlejjebpgei98cbbgbbmwfr4asdf', ];
AlipayController
这是一个批量付款的栗子,支付宝其它接口换成相应的接口即可使用
<?php /** * User: fix * Date: 16/7/4 * Time: 上午9:40 */ namespace backend\controllers\pay; use yii; use yii\log\Logger; use qianlizeguo\alipay\AlipayNotify; use qianlizeguo\alipay\AlipayConfig; use qianlizeguo\alipay\AlipaySubmit; use yii\web\Controller; class AlipayController extends Controller { public function beforeAction($action) { if ('notify' == $action->id) { $this->enableCsrfValidation = false; } return parent::beforeAction($action); } public function actionIndex() { /**************************请求参数**************************/ //服务器异步通知页面路径 $notify_url = Yii::$app->urlManager->createAbsoluteUrl(['pay/alipay/notify']); //需http://格式的完整路径,不允许加?id=123这类自定义参数 //付款账号 $email = $_POST['WIDemail']; //必填 //付款账户名 $account_name = "北京纽斯洛网络科技有限公司"; //必填,个人支付宝账号是真实姓名公司支付宝账号是公司名称 //付款当天日期 $pay_date = date("Y-m-d"); //必填,格式:年[4位]月[2位]日[2位],如:20100801 //批次号 $batch_no = date("YmdHis"); //必填,格式:当天日期[8位]+序列号[3至16位],如:201008010000001 //付款总金额 $batch_fee = 0.02; //必填,即参数detail_data的值中所有金额的总和 //付款笔数 $batch_num = 2; //必填,即参数detail_data的值中,“|”字符出现的数量加1,最大支持1000笔(即“|”字符出现的数量999个) //付款详细数据 $detail_data = "流水号1^收款方帐号1^真实姓名^0.01^测试付款1,这是备注|流水号2^收款方帐号2^真实姓名^0.01^测试付款2,这是备注"; //必填,格式:流水号1^收款方帐号1^真实姓名^付款金额1^备注说明1|流水号2^收款方帐号2^真实姓名^付款金额2^备注说明2.... /************************************************************/ $alipayConfig = (new AlipayConfig())->getAlipayConfig(); //构造要请求的参数数组,无需改动 $parameter = array( "service" => "batch_trans_notify", "partner" => trim($alipayConfig['partner']), "notify_url" => $notify_url, "email" => trim($alipayConfig['seller_email']), "account_name" => $account_name, "pay_date" => $pay_date, "batch_no" => $batch_no, "batch_fee" => $batch_fee, "batch_num" => $batch_num, "detail_data" => $detail_data, "_input_charset" => trim(strtolower($alipayConfig['input_charset'])) ); //建立请求 $alipaySubmit = new AlipaySubmit($alipayConfig); $html_text = $alipaySubmit->buildRequestForm($parameter,"get", "确认"); return $html_text; } public function actionNotify() { $alipayConfig = (new AlipayConfig())->getAlipayConfig(); Yii::getLogger()->log("alipay Notify Start", Logger::LEVEL_ERROR); Yii::getLogger()->log("↓↓↓↓↓↓↓↓↓↓alipayConfig↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓", Logger::LEVEL_ERROR); Yii::getLogger()->log(print_r($alipayConfig, true), Logger::LEVEL_ERROR); $notify = new AlipayNotify($alipayConfig); if ($notify->verifyNotify()) { Yii::getLogger()->log('verify Notify success', Logger::LEVEL_ERROR); //通知时间 2009-08-12 11:08:32 $notify_time = Yii::$app->request->post('notify_time'); //通知类型 batch_trans_notify $notifyType = Yii::$app->request->post('notify_type'); //通知校验ID 70fec0c2730b27528665af4517c27b95 $notifyId = Yii::$app->request->post('notify_id'); //签名方式 MD5 $signType = Yii::$app->request->post('sign_type'); //签名 e7d51bf34a1317714d93fab13bbeab73 $sign = Yii::$app->request->post('sign'); //批次号 $batchNo = Yii::$app->request->post('batch_no'); //付款账号ID $payUserId = Yii::$app->request->post('pay_user_id'); //付款账号姓名 $payUserName = Yii::$app->request->post('pay_user_name'); //付款账号 $payAccountNo = Yii::$app->request->post('pay_account_no'); //批量付款数据中转账成功的详细信息 $successDetails = Yii::$app->request->post('success_details'); //批量付款数据中转账失败的详细信息 $failDetails = Yii::$app->request->post('fail_details'); //请在这里加上商户的业务逻辑程序代 //判断是否在商户网站中已经做过了这次通知返回的处理 //如果没有做过处理,那么执行商户的业务程序 //如果有做过处理,那么不执行商户的业务程序 return "success"; } else { Yii::getLogger()->log('verify Notify failed', Logger::LEVEL_ERROR); return "fail"; } } }
qianlizeguo/yii2-alipay 适用场景与选型建议
qianlizeguo/yii2-alipay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2020 年 08 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「yii2」 「alipay」 「支付宝」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 qianlizeguo/yii2-alipay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 qianlizeguo/yii2-alipay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 qianlizeguo/yii2-alipay 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
克隆自 yansongda/pay
fork from yansongda/pay and support alipay cert with @cuikangyi 's pr https://github.com/yansongda/pay/pull/288
alipay for Yii2
An integrated alipay and wechat payment solution based on YouZan using php
SCEditor, a lightweight WYSIWYG BBCode & HTML editor extension for Yii 2.0 Framework
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2020-08-22