pay方法

    /**
*支付宝支付
*/
public function pay($param) {
vendor('alipay.AopSdk');// 加载类库
$config = array(
'appid' =>'2018032002414339',//商户密钥
'rsaPrivateKey' =>'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',//私钥
'alipayrsaPublicKey'=>'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',//公钥
'charset'=>strtolower('utf-8'),//编码
'notify_url' =>'http://xxx/jiceng/Notifyurl/index',//回调地址(支付宝支付成功后回调修改订单状态的地址)
'payment_type' =>1,//(固定值)
'seller_id' =>'2088031565381518',//收款商家账号5abd9e4d92fef
'charset' => 'utf-8',//编码
'sign_type' => 'RSA2',//签名方式
'timestamp' =>date("Y-m-d H:i:s"),
'version' =>"1.0",//固定值
'url' => 'https://openapi.alipay.com/gateway.do',//固定值
'method' => 'alipay.trade.app.pay',//固定值
);
//构造业务请求参数的集合(订单信息)
$order=date("YmdHis").time().mt_rand(1000,9999);//订单号
$price=$param['price'];//价格
$uid=$param['userid'];//用户编号
Response::debug($price.'+'.$uid);
//添加账单
$obj = array(
"userid" => $uid,
"charge" =>$price,
'paytime'=>time(),
"paytype"=>'支付宝',
"paystate"=>0,
"order"=>$order
);
$insert=M('api_charge')->add($obj);
$content = array();
$content['body'] = '';
$content['subject'] = '充值';//商品的标题/交易标题/订单标题/订单关键字等
$content['out_trade_no'] = $order;//商户网站唯一订单号
$content['timeout_express'] = '1d';//该笔订单允许的最晚付款时间
$content['total_amount'] = floatval($price);//订单总金额(必须定义成浮点型)
$content['seller_id'] = $config['seller_id'];//收款人账号
$content['product_code'] = 'QUICK_MSECURITY_PAY';//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
$content['store_id'] = '001';//商户门店编号
$con = json_encode($content);//$content是biz_content的值,将之转化成字符串
//公共参数
$param = array();
$Client = new \AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作,都在这个类里面
$param['app_id'] = $config['appid'];//支付宝分配给开发者的应用ID
$param['method'] = $config['method'];//接口名称
$param['charset'] = $config['charset'];//请求使用的编码格式
$param['sign_type'] = $config['sign_type'];//商户生成签名字符串所使用的签名算法类型
$param['timestamp'] = $config['timestamp'];//发送请求的时间
$param['version'] = $config['version'];//调用的接口版本,固定为:1.0
$param['notify_url'] = $config['notify_url'];//支付宝服务器主动通知地址
$param['biz_content'] = $con;//业务请求参数的集合,长度不限,json格式 //生成签名 $paramStr = $Client->getSignContent($param);
$sign = $Client->alonersaSign($paramStr,$config['rsaPrivateKey'],'RSA2');
$param['sign'] = $sign;
$str = $Client->getSignContentUrlencode($param); return array('url'=>$str);
}

异步回调

  /**
*支付宝支付回调
*/
public function index()
{ vendor('alipay.AopSdk');// 加载类库
$aop = new \AopClient;
$aop->alipayrsaPublicKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2");
if ($flag) {
if ($_POST['trade_status'] == 'TRADE_FINISHED' || $_POST['trade_status'] == 'TRADE_SUCCESS')
{
$out_trade_no = $_POST['out_trade_no']; //商户订单号
$data['paystate']=1;
$res = D('api_charge')->where(array('order' => $out_trade_no))->save($data);
if( $res === false ){
echo 'fail';
}else{
echo 'success';
} }
} }

tp3.2 支付宝app支付的更多相关文章

  1. 支付宝APP支付开发- IOException : DER input, Integer tag error

    支付宝APP支付Java开发报错: 1 java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: I ...

  2. 支付宝APP支付开发- IOException : DerInputStream.getLength(): lengthTag=127, too big.

    支付宝APP支付Java开发报错: IOException : DerInputStream.getLength(): lengthTag=127, too big. 后来排查是因为没有设置私钥.

  3. 支付宝APP支付之Java后台生成签名具体步骤

    /** *支付宝支付 * @param orderId 订单编号 * @param actualPay 实际支付金额 * @return */ private String getOrderInfoB ...

  4. Android版-支付宝APP支付

    此项目已开源 赶快来围观 Start支持下吧 [客户端开源地址-JPay][服务端端开源地址-在com.javen.alipay 包名下] 上一篇详细介绍了微信APP支付 点击这里 此篇文章来详细介绍 ...

  5. H5使用codovar插件实现支付宝支付(支付宝APP支付模式,前端)

    H5打包的app实现支付及支付宝支付,本章主要详解支付宝支付,微信支付请查看另一篇“H5使用codovar插件实现微信支付(微信APP支付模式,前端)” ps:本文只试用H5开发的,支付宝 APP支付 ...

  6. 支付宝app支付服务端流程

    支付宝APP支付服务端详解 前面接了微信支付,相比微信支付,支付宝APP支付提供了支付封装类,下面将实现支付宝APP支付.订单查询.支付结果异步通知.APP支付申请参数说明,以及服务端返回APP端发起 ...

  7. 微信、支付宝App支付-JPay0.0.2发布

    JPay 对微信App支付.支付宝App支付的二次封装,对外提供一个相对简单的接口以及支付结果的回调 GitHub:https://github.com/Javen205/JPay OsChina:h ...

  8. 支付宝app支付java后台流程、原理分析(含nei wang chuan tou)

    java版支付宝app支付流程及原理分析 本实例是基于springmvc框架编写     一.流程步骤         1.执行流程           当手机端app(就是你公司开发的app)在支付 ...

  9. 支付宝APP支付IOS手机端java后台版

    版权声明:http://blog.csdn.net/u012131769/article/details/76639527#t8 转载:http://blog.csdn.net/u012131769/ ...

随机推荐

  1. win10系统 安装好composer后 cmd 命令行下输入composer提示不是内部或外部的命令,也不是可执行的程序或批处理文件

    在 windows CMD 下运行composer 出现错误提示: 不是内部或外部命令,也不是可运行的程序或批处理文件,这是因为没有配置 PATH 环境变量. 以 win10 为例,找到此电脑右击选择 ...

  2. django默认后台使用

    1.初始化数据python manage.py migrate 2.创建超级用户python manage.py createsuperuser 然后按照提示输入就可以了 3.admin管理页面找不到 ...

  3. css加载字体跨域问题

    刚才碰到一个css加载字体跨域问题,记录一下.站点的动态请求与静态文件请求是不同的域名的.站点的域名为 www.domain.com,而静态文件的域名为 st.domain.com.问题:页面中加载c ...

  4. Linux 安装MySql启动Can't locate Data/Dumper.pm in @INC

    通过RPM包CentOS7 安装MySQL的时候提示“Can't locate Data/Dumper.pm in @INC (@INC contains: /usr/local/lib64/perl ...

  5. eclipse web项目没有run on server

    如下图,将 Dynamic Web Module和Java勾选上

  6. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(4)

    Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(4) 1.老样子,首先运行tcl脚本建工程: Vi ...

  7. 启动代码和Bootloader区别

    很多人都会把两者混淆,所以这里稍微说一下. 启动代码和Bootloader有点类似于类和结构体的关系,也就是说结构体只是一种很特殊很特殊的类,但不能说类是一种结构体. 也就是说可以说启动代码是Boot ...

  8. HTML和CSS的静态页面

    链接:https://pan.baidu.com/s/1fGajigyQJDLIHqxJn2LXsQ 提取码:7sry 复制这段内容后打开百度网盘手机App,操作更方便哦 设计思路,把网页分成几个模块 ...

  9. windows server core 设置shell 及切换

    hkey_local_machine/software/Microsoft/windows nt/currentversion/winlogon/shell 1)windows server 2012 ...

  10. 黄聪:jquery+Datatables出现数据过长,表格不自动换行,columns设置width失效的办法

    添加下面的CSS代码即可: table.dataTable.nowrap th, table.dataTable.nowrap td{white-space: normal !important;}