| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- <?php
- namespace mobile\controllers;
- use Yii;
- use \yii\base\Controller;
- use Omnipay\Omnipay;
- use common\components\util;
- class AlipayController //extends Controller
- {
- /*Alipay_AopPage Alipay Page Gateway 电脑网站支付 *
- Alipay_AopApp Alipay APP Gateway APP支付 *
- Alipay_AopF2F Alipay Face To Face Gateway 当面付 *
- Alipay_AopWap Alipay WAP Gateway 手机网站支付 *
- Alipay_LegacyApp Alipay Legacy APP Gateway APP支付 *
- Alipay_LegacyExpress Alipay Legacy Express Gateway 即时到账
- Alipay_LegacyWap Alipay Legacy WAP Gateway 手机网站支付 *
- */
- public function actionIndex(){
- echo 1111;
- }
- public function actionTest(){
- $alipayWap = Yii::getAlias("@vendor/alipayWap");
- require_once($alipayWap.'/config.php');
- $returnUrl = Yii::$app->params['frontUrl']."/alipay/notifycall";
- $notifyUrl = Yii::$app->params['frontUrl']."/alipay/returncall";
- $gateway = Omnipay::create('Alipay_AopWap');
- $gateway->setSignType($config['sign_type']); // RSA/RSA2/MD5
- $gateway->setAppId($config['app_id']);
- $gateway->setPrivateKey($config['merchant_private_key']);
- $gateway->setAlipayPublicKey($config['alipay_public_key']);
- $gateway->setReturnUrl($returnUrl);
- $gateway->setNotifyUrl($notifyUrl);
- /**
- * @var AopTradePagePayResponse $response
- */
- $response = $gateway->purchase()->setBizContent([
- 'subject' => 'test',
- 'out_trade_no' => date('YmdHis') . mt_rand(1000, 9999),
- 'total_amount' => '0.01',
- 'product_code' => 'FAST_INSTANT_TRADE_PAY',
- ])->send();
- $url = $response->getRedirectUrl();
- Header("Location: $url");
- }
- public function actionLegacyExpress(){
- $alipayWap = Yii::getAlias("@vendor/alipayWap");
- require_once($alipayWap.'/config.php');
- $returnUrl = Yii::$app->params['frontUrl']."/alipay/notifycall";
- $notifyUrl = Yii::$app->params['frontUrl']."/alipay/returncall";
- $gateway = Omnipay::create('Alipay_AopWap');
- $gateway->setSignType($config['sign_type']); // RSA/RSA2/MD5
- $gateway->setAppId($config['app_id']);
- $gateway->setPrivateKey($config['merchant_private_key']);
- $gateway->setAlipayPublicKey($config['alipay_public_key']);
- $gateway->setReturnUrl($returnUrl);
- $gateway->setNotifyUrl($notifyUrl);
- //dump($gateway);die;
- /**
- * @var AopTradePagePayResponse $response
- */
- $response = $gateway->purchase()->setBizContent([
- 'subject' => 'test',
- 'out_trade_no' => date('YmdHis') . mt_rand(1000, 9999),
- 'total_amount' => '0.01',
- 'product_code' => 'FAST_INSTANT_TRADE_PAY',
- ])->send();
- //dump($response);die;
- $url = $response->getRedirectUrl();
- //dump($url);die;
- Header("Location: $url");die;
- $this->renderPartial('test',['result'=>$url]);
- }
- public function actionNotifycall(){
- header("Content-type: text/html; charset=utf-8");
- $alipayWap = Yii::getAlias("@vendor/alipayWap");
- require_once($alipayWap.'/config.php');
- require_once($alipayWap.'/wappay/service/AlipayTradeService.php');
- require_once($alipayWap.'/wappay/buildermodel/AlipayTradeQueryContentBuilder.php');//查询接口
- $arr = $_POST;
- $alipaySevice = new \AlipayTradeService($config);
- $alipaySevice->writeLog(var_export($_POST,true));
- $result = $alipaySevice->check($arr);
- if($result) {//验证成功
- echo "success";//请不要修改或删除
- util::end();
- }
- echo "fail";//请不要修改或删除
- }
- public function actionReturncall(){
- //跳转到不同页面 for this is normally fail
- $this->redirect(['apli-pay-test/end']);
- }
- public function actionEnd(){
- echo 'finish!!!';
- }
- public function actionFund(){
- $alipayWap = Yii::getAlias("@vendor/alipayWap");
- require_once($alipayWap.'/aop/AopClient.php');
- require_once($alipayWap.'/aop/request/AlipayFundTransToaccountTransferRequest.php');
- require_once($alipayWap.'/config.php');
- $aop = new \AopClient();
- $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
- $aop->appId = $config['app_id'];
- $aop->rsaPrivateKey = $config['merchant_private_key'];
- $aop->alipayrsaPublicKey= $config['alipay_public_key'];
- $aop->apiVersion = '1.0';
- $aop->signType = 'RSA2';
- $aop->postCharset= 'UTF-8';
- $aop->format='json';
- $request = new \AlipayFundTransToaccountTransferRequest ();
- $out_biz_no = date('YmdHis') . mt_rand(1000, 9999);
- $request->setBizContent("{" .
- "\"out_biz_no\":\"".$out_biz_no."\"," .
- "\"payee_type\":\"ALIPAY_LOGONID\"," .
- "\"payee_account\":\"shi182@139.com\"," .
- "\"amount\":\"0.1\"," .
- "\"payer_show_name\":\"花汇宝\"," .
- "\"payee_real_name\":\"石少奇\"," .
- "\"remark\":\"资金到帐\"" .
- " }");
- $result = $aop->execute ( $request);
- $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
- $resultCode = $result->$responseNode->code;
- if(!empty($resultCode)&&$resultCode == 10000){
- echo "成功";
- } else {
- echo "失败";
- }
- }
- }
|