Yii 1.1: alipay4yii

Usage 

Extract downloaded zip to protected/vendors

add component configuration(all urls can't contain query string, no "?xxx=xxx"):

'alipay'=>array(
        'class'=>'application.vendors.alipay.AlipayProxy',
        'key'=>'your key',
        'partner'=>'your partner id',
        'seller_email'=>'example@yahoo.cn',
        'return_url'=>'url for redirect notify',
        'notify_url'=>'url for server side notify',
        'show_url'=>'url for product detail',
    ),

Send payment request:

public function actionGotoPay()
{
    $alipay = Yii::app()->alipay;
    // If starting a guaranteed payment, use AlipayGuaranteeRequest instead
    $request = new AlipayDirectRequest();
    $request->out_trade_no = "unique order number";
    $request->subject = "product name";
    $request->body = "product description";
    $request->total_fee = 100.00;
    // Set other optional params if needed
    $form = $alipay->buildForm($request);
    echo $form;
    exit();
}

Process callback:

// Server side notification
public function actionNotify() {
    $alipay = Yii::app()->alipay;
    if ($alipay->verifyNotify()) {
        $order_id = $_POST['out_trade_no'];
        $order_fee = $_POST['total_fee'];   
        if($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS') {
            update_order_status($order_id, $order_fee, $_POST['trade_status']);
            echo "success";
        }
        else {
            echo "success";
        }
    } else {
        echo "fail";
        exit();
    }
}
 
//Redirect notification
public function actionReturn() {
    $alipay = Yii::app()->alipay;
    if ($alipay->verifyReturn()) {
        $order_id = $_GET['out_trade_no'];
        $total_fee = $_GET['total_fee'];
 
        if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {
            update_order_status($order_id, $total_fee, $_POST['trade_status']);
            $this->render('order_paid');
        }
        else {
            echo "trade_status=".$_GET['trade_status'];
        }
    } else {
        echo "fail";
        exit();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值