2017 © Pedro Peláez
 

library yii2-alipay

Yii2 framework alipay

image

dbing/yii2-alipay

Yii2 framework alipay

  • Friday, November 17, 2017
  • by DBING
  • Repository
  • 2 Watchers
  • 1 Stars
  • 50 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

yii2-alipay

PC端即时到账支付宝付款接口, (*1)

安装

安装此扩展的首选方法是通过 composer., (*2)

运行, (*3)

php composer.phar require --prefer-dist dbing/yii2-alipay

或者 添加, (*4)

"dbing/yii2-alipay": "~1.1.0"

composer.json., (*5)

使用

要使用此扩展,只需在应用程序配置中添加以下代码:, (*6)

return [
    //....
    'components' => [
        'alipay' =>[
            'class'         =>'bing\alipay\Payment',
            'partner'       =>'208812xxxxxxxxxx',                           //合作身份者id
            'seller_email'  =>'itbing@sina.cn',                             //收款支付宝账号
            'key'           =>'1cvr0ix35iyy7qbkgs3gwyxxxxxxxxxx',           //安全检验码,
            'return_url'    =>'http://www.demo.com/pay/return', //同步通知地址(注:不能加?id=123这类自定义参数)
            'notify_url'    =>'http://www.demo.com/pay/notify', //异步通知地址(注:不能加自定义参数且不能写成内网域如localhost)
            'refund_url'    =>'http://www.demo.com/pay/refund', //退款通知地址(注:不能加自定义参数且内网域如localhost)

        ]
    ],
];

获取单纯的支付链接:, (*7)

$payUrl = Yii::$app->alipay->payUrl(唯一订单号,订单名称,付款金额,订单描述,[自定义参数],[商品展示地址]);
eg:
$payUrl = Yii::$app->alipay->payUrl(time() . rand(10000,99999),'必应商城订单',0.01,'买了一个栗子');

你也可以获取带有支付链接的A标签:, (*8)

$payUrl = Yii::$app->alipay
    ->compose('去支付','btn btn-default')
    ->payUrl(time() . 99999,'必应商城订单',0.01,'买了一头猪');

同步地址处理:, (*9)

// 验签
if(Yii::$app->alipay->verifyReturn())
{
    $get = Yii::$app->request->get();
    if($get['trade_status'] == 'TRADE_SUCCESS' || $get['trade_status'] == 'TRADE_FINISHED')
    {
        //判断该笔订单是否在商户网站中已经做过处理
        //否,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        //是,不执行商户的业务程序
        ...
        ...
        ...
    }
}

异步地址处理:, (*10)

// 验签
$result = Yii::$app->alipay->verifyNotify();
if($result)
{
    $post = Yii::$app->request->post();
    if($post['trade_status'] == 'TRADE_FINISHED')
    {
        //判断该笔订单是否在商户网站中已经做过处理
        //否,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
        //是,不执行商户的业务程序
        ...
        ...
        ...
        //注意:
        //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知
    }
    else if($post['trade_status'] == 'TRADE_SUCCESS')
    {
        ...
        ...
        ...        
        //注意:
        //付款完成后,支付宝系统发送该交易状态通知
    }

    echo "success";     //请不要修改或删除
}
else
{
    //验证失败
    echo "fail";
}

退款

获取单纯的退款链接:, (*11)

$refundUrl = Yii::$app->alipay->refund(批次号序列号[3至24位],退款笔数,退款详细数据);

eg:
$refundUrl = Yii::$app->alipay->refund(0000001,1,'2017111221001104770549058379^0.01^协商退款');

注:退款详细数据=原付款支付宝交易号[trade_no]^退款总金额^退款理由

获取带有A标签和样式的退款方式:, (*12)

$refundUrl = Yii::$app->alipay->compose('退款','btn btn-success')->refund(0000002,1,'2017111221001104770549058379^0.01^协商退款');

退款异步通知处理:, (*13)

// 验签
$result = Yii::$app->alipay->refundNotify();
if($result){

    //——请根据您的业务逻辑来编写程序(以下代码仅作参考)——

    //批次号
    $batch_no = $_POST['batch_no'];

    //批量退款数据中转账成功的笔数
    $success_num = $_POST['success_num'];

    //批量退款数据中的详细信息
    $result_details = $_POST['result_details'];

    //判断是否在商户网站中已做过这次通知的处理,然后再决定是否执行商户的业务程序

    echo "success";     //请不要修改或删除

    //调试用,写文本函数记录程序运行情况是否正常
    //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");

    //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

}
else {
    //验证失败
    echo "fail";

    //调试用,写文本函数记录程序运行情况是否正常
    //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
}


The Versions

17/11 2017

dev-master

9999999-dev

Yii2 framework alipay

  Sources   Download

BSD-3-Clause

The Requires

 

12/11 2017

1.1.0

1.1.0.0

Yii2 framework alipay

  Sources   Download

BSD-3-Clause

The Requires

 

30/10 2017

1.0.0

1.0.0.0

Yii2 framework alipay

  Sources   Download

BSD-3-Clause

The Requires

 

29/10 2017

v1.0.0

1.0.0.0

Yii2 framework alipay

  Sources   Download

BSD-3-Clause

The Requires