纯PHP代码实现支付宝批量付款


Posted in PHP onDecember 24, 2015

最近在做一个使用支付宝转账的项目,其中有需求把我难到了:批量支付成功后不知道怎么接收系统返回的通知,经过朋友帮忙,此功能实现,下面小编把具体代码整理分享给大家,供大家参考

废话不多说了,直接给大家贴php代码了,具体代码如下所示:

//批量付款异步通知处理
class Notify
{
  public $notifyParams;
  //处理成功的信息
  protected $success = [];
  //处理失败的信息
  protected $fail = [];
  //批次号
  protected $batchNo;
  public function save()
  {
    if (!is_array($this->notifyParams)) {
      return false;
    }
    $alipayNotify = new AlipayNotify();
    $alipayNotify->notifyParams = $this->notifyParams;
    $alipayNotify->partner = Yii::$app->params['Alipay.appid'];
    $alipayNotify->key = Yii::$app->params['Alipay.appKey'];
    if (!$alipayNotify->verify()) {
      return false;
    }
    $this->batchNo = $this->notifyParams['batch_no'];
    $this->parseResult();
    //转账成功的
    if (!empty($this->success)) {
      foreach ($this->success as $item) {
        //.........
      }
    }
    //转账失败的
    if (!empty($this->fail)) {
      foreach ($this->fail as $item) {
        //........
      }
    }
    return true;
  }
  //解析结果
  protected function parseResult()
  {
    if (!empty($this->notifyParams['success_details'])) {
      $suArray = explode('|', $this->notifyParams['success_details']);
      foreach ($suArray as $item) {
        $this->success[] = explode('^', $item);
      }
    }
    if (!empty($this->notifyParams['fail_detail'])) {
      $faArray = explode('|', $this->notifyParams['fail_detail']);
      foreach ($faArray as $item) {
        $this->fail[] = explode('^', $item);
      }
    }
  }
}
//用法
$model = new Notify();
$model->notifyParams = $_POST;
if ($model->save()) {
  return 'success';
}
return 'fail';

以上内容给大家讲解了纯PHP代码实现支付宝批量付款的功能,希望对大家有所帮助。

PHP 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
基于PHP服务端图片生成缩略图的方法详解
Jun 20 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
ThinkPHP通过AJAX返回JSON的两种实现方法
Dec 18 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
PHP抓取网页、解析HTML常用的方法总结
Jul 01 PHP
PHP生成及获取JSON文件的方法
Aug 23 PHP
PHP文件操作实例总结【文件上传、下载、分页】
Dec 08 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
Jan 26 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 #PHP
4种PHP异步执行的常用方式
Dec 24 #PHP
php实现异步数据调用的方法
Dec 24 #PHP
PHP下SSL加密解密、验证、签名方法(很简单)
Jun 28 #PHP
深入浅析php json 格式控制
Dec 24 #PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 #PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 #PHP
You might like
PHP邮件专题
2006/10/09 PHP
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
Jquery如何实现点击时高亮显示代码
2014/01/22 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
三种检测iPhone/iPad设备方向的方法
2014/04/23 Javascript
JavaScript组合拼接字符串的效率对比测试
2014/11/06 Javascript
javascript获取重复次数最多的字符
2015/07/08 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
AngularJS基础 ng-switch 指令简单示例
2016/08/03 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
Vue2 配置 Axios api 接口调用文件的方法
2017/11/13 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
微信小程序基础教程之worker线程的使用方法
2019/07/15 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
解决python2.7 查询mysql时出现中文乱码
2016/10/09 Python
值得收藏,Python 开发中的高级技巧
2018/11/23 Python
Python神奇的内置函数locals的实例讲解
2019/02/22 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
django创建超级用户时指定添加其它字段方式
2020/05/14 Python
Django REST Swagger实现指定api参数
2020/07/07 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
Ejb技术面试题
2015/04/29 面试题
党员违纪检讨书
2014/02/18 职场文书
县委务虚会发言材料
2014/10/20 职场文书
离婚被告答辩状
2015/05/22 职场文书
雨中的树观后感
2015/06/03 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
django中websocket的具体使用
2022/01/22 Python