当前位置: 首页>>代码示例>>PHP>>正文


PHP AlipayNotify::verifySign方法代码示例

本文整理汇总了PHP中AlipayNotify::verifySign方法的典型用法代码示例。如果您正苦于以下问题:PHP AlipayNotify::verifySign方法的具体用法?PHP AlipayNotify::verifySign怎么用?PHP AlipayNotify::verifySign使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AlipayNotify的用法示例。


在下文中一共展示了AlipayNotify::verifySign方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: AlipayNotify

 /**
  *    经销商采购订单--返回通知结果
  *
  *    @author    Garbin
  *    @param     array $order_info
  *    @param     bool  $strict
  *    @return    array
  */
 function dealer_notify($order_info, $strict = false)
 {
     if (empty($order_info)) {
         $this->_error('order_info_empty');
         return false;
     }
     /* 初始化所需数据 */
     $notify = $this->_get_notify();
     $alipayNotify = new AlipayNotify($this->alipay_config);
     /* 验证来路是否可信 */
     if ($strict) {
         /* 严格验证 */
         $verify_result = $alipayNotify->queryNotify($notify['notify_id']);
         if (!$verify_result) {
             /* 来路不可信 */
             $this->_error('notify_unauthentic');
             return false;
         }
     }
     /* 验证通知是否可信 */
     $sign_result = $alipayNotify->verifySign($notify);
     if (!$sign_result) {
         /* 若本地签名与网关签名不一致,说明签名不可信 */
         $this->_error('sign_inconsistent');
         return false;
     }
     /* ----------通知验证结束---------- */
     /* ----------本地验证开始---------- */
     /* 验证与本地信息是否匹配 */
     /* 这里不只是付款通知,有可能是发货通知,确认收货通知 */
     if ($order_info['ship_bill_no'] != $notify['out_trade_no']) {
         /* 通知中的订单与欲改变的订单不一致 */
         $this->_error('order_inconsistent');
         return false;
     }
     if ($order_info['amount'] != $notify['total_fee']) {
         /* 支付的金额与实际金额不一致 */
         $this->_error('price_inconsistent');
         return false;
     }
     //至此,说明通知是可信的,订单也是对应的,可信的
     /* 按通知结果返回相应的结果 */
     $order_no = '';
     switch ($notify['trade_status']) {
         case 'WAIT_BUYER_PAY':
             //等待买家付款
             // $order_status = DORDER_PENDING;     // 10
             $order_status = DORDER_READY;
             // 0
             break;
         case 'WAIT_SELLER_SEND_GOODS':
             //买家已付款,等待卖家发货
             //   $order_status = DORDER_ACCEPTED; //
             $order_status = DORDER_PENDING;
             // 订单改为付款状态 10
             $trade_no = $notify['trade_no'];
             break;
         case 'WAIT_BUYER_CONFIRM_GOODS':
             //卖家已发货,等待买家确认
             // $order_status = DORDER_SHIPPED;
             $order_status = DORDER_ACCEPTED;
             // 订单状态改为 已发货 20  , 发货状态:DORDER_SELLED 改为10
             break;
         case 'TRADE_FINISHED':
             //交易结束
             /* 说明是第三方担保交易,交易结束 */
             $order_status = DORDER_SHIPPED;
             // 订单买家确认收货,订单状态完成。  status =30  ,take_status = 30, abn_status = 30
             break;
         case 'TRADE_CLOSED':
             //交易关闭
             $order_status = DORDER_CANCLED;
             // 废弃订单 status =30  ,take_status = 30,,abn_status = 40
             break;
         default:
             $this->_error('undefined_status');
             return false;
             break;
     }
     switch ($notify['refund_status']) {
         case 'REFUND_SUCCESS':
             //退款成功,取消订单
             $order_status = DORDER_CANCLED;
             break;
     }
     /* 记录日志  */
     $this->put_log();
     return array('target' => $order_status, 'trade_status' => $notify['trade_status'], 'trade_no' => $trade_no);
 }
开发者ID:zwq,项目名称:unpei,代码行数:97,代码来源:AlipayProxy.php


注:本文中的AlipayNotify::verifySign方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。