iqianfang/yii2alipay 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

iqianfang/yii2alipay

Composer 安装命令:

composer require iqianfang/yii2alipay

包简介

yii2 支付宝(alipay)即时到帐接口扩展组件

README 文档

README

适用于支付宝即时到帐接口,具体使用方法如下:

安装

通过composer安装,在项目目录下运行如下代码:

composer require "iqianfang/yii2alipay:1.0.0"

或者修改composer.json的require部分,添加

"iqianfang/yii2alipay": "1.0.0",

配置使用

一、配置Yii2组件

在common下的全局配置文件main.php中添加组件配置,请参考如下alipay的配置:

'components' => [
        'alipay' => [
            'class' => 'iqianfang\yii2alipay\Alipay',
            'config' => [
                //↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
                //合作身份者ID,签约账号,以2088开头由16位纯数字组成的字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
                'partner' => '2088*****',
                //收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号
                'seller_id' => '2088*****',
                // MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm
                'key' => '',
                // 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=>123这类自定义参数,必须外网可以正常访问
                'notify_url' => 'payment/alipay-asy-notify',
                // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=>123这类自定义参数,必须外网可以正常访问
                'return_url' => "payment/alipay-sy-notify",
                //签名方式
                'sign_type' => strtoupper('MD5'),
                //字符编码格式 目前支持 gbk 或 utf-8
                'input_charset' => strtolower('utf-8'),
                //ca证书路径地址,用于curl中ssl校验
                //'cacert' => getcwd() . '\\cacert.pem',
                //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
                'transport' => 'http',
                // 支付类型 ,无需修改
                //'payment_type' => "1",
                // 产品类型,无需修改
                //'service' => "create_direct_pay_by_user",
                //↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
                //↓↓↓↓↓↓↓↓↓↓ 请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
                // 防钓鱼时间戳  若要使用请调用类文件submit中的query_timestamp函数
                'anti_phishing_key' => "",
                // 客户端的IP地址 非局域网的外网IP地址,如:221.0.0.1
                'exter_invoke_ip' => "",
                //↑↑↑↑↑↑↑↑↑↑请在这里配置防钓鱼信息,如果没开通防钓鱼功能,为空即可 ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
            ],
        ],
    ],
    

注意:一些固定配置/不常用配置放到组件类的init里了,有用到的可以去那里改。

二、逻辑处理

1、支付请求提交

在需要发起支付请求的地方调用

Yii::$app->alipay->submit($order);

其中order是你的订单实例,通过它可以获取到订单号支付总价等,如果你的逻辑用不到或者与此不同,请自行修改

2、支付结果通知

根据配置里设置的控制器及action编写代码。以上面我的配置为例,创建控制器Payment,该控制器用于接受支付宝同步/异步通知,下面两个action分别对应配置中设定的action(我的逻辑比较简单所以处理都放组件了,你的视情况自己看着办):

class PaymentController extends Controller
{
    /**
     * 关闭csrf,以便异步通知可访问
     * @param \yii\base\Action $action
     * @return bool
     * @author WangTao <78861190@qq.com>
     */
    public function beforeAction($action)
    {
        $this->enableCsrfValidation = false;
        return parent::beforeAction($action); // TODO: Change the autogenerated stub
    }

    /**
     * 响应异步通知请求
     * @author WangTao <78861190@qq.com>
     */
    public function actionAlipayAsyNotify()
    {
        Yii::$app->alipay->asyNotify();
    }

    /**
     * 响应同步通知请求
     * @return string
     * @author WangTao <78861190@qq.com>
     */
    public function actionAlipaySyNotify()
    {
        $rs = Yii::$app->alipay->syNotify();

        return $this->render('alipay-notify', [
            'rs' => $rs
        ]);
    }
}

其他

没用curl,直接用了官方demo的现成代码,如果有需要请参考支付宝官方文档再进一步处理即可。 别忘了配置urlManager,开启url美化,否则通知url会有参数,通知会失败

iqianfang/yii2alipay 适用场景与选型建议

iqianfang/yii2alipay 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26 次下载、GitHub Stars 达 0, 最近一次更新时间为 2016 年 12 月 07 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 iqianfang/yii2alipay 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 iqianfang/yii2alipay 我们能提供哪些服务?
定制开发 / 二次开发

基于 iqianfang/yii2alipay 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 26
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: null
  • 更新时间: 2016-12-07