
申请接口使用权
1.即时到账
申请成功会获得一个合作商户ID,一串密钥
下载好api,需要配置
1.合作者ID
2.密钥
3.收款账号
4.notify_url(服务器异步通知页面路径)
5.return_url(页面跳转同步通知页面路径)
1.确认订单,跳转支付方法
> 控制器
~~~
public function actionNotify()
{
if (Yii::$app->request->isPost) {
$post = Yii::$app->request->post();
if (Pay::notify($post)) {
echo "success";
exit;
}
echo "fail";
exit;
}
}
~~~
> 模型
~~~
public static function notify($data)
{
$alipay = new \AlipayPay();
$verify_result = $alipay->verifyNotify();
if ($verify_result) {
$out_trade_no = $data['extra_common_param'];//
$trade_no = $data['trade_no'];
$trade_status = $data['trade_status'];
$status = Order::PAYFAILED;
if ($trade_status == 'TRADE_FINISHED' || $trade_status == 'TRADE_SUCCESS') {
$status = Order::PAYSUCCESS;
$order_info = Order::find()->where('orderid = :oid', [':oid' => $out_trade_no])->one();
if (!$order_info) {
return false;
}
if ($order_info->status == Order::CHECKORDER) {
Order::updateAll(['status' => $status, 'tradeno' => $trade_no, 'tradeext' => json_encode($data)], 'orderid = :oid', [':oid' => $order_info->orderid]);
} else {
return false;
}
}
return true;
} else {
return false;
}
}
~~~
2.
> 控制器
~~~
public function actionReturn()
{
$this->layout = 'layout1';
$status = Yii::$app->request->get('trade_status');
if ($status == 'TRADE_SUCCESS') {
$s = 'ok';
} else {
$s = 'no';
}
return $this->render("status", ['status' => $s]);
}
~~~