php语言 百分网手机站

整合支付宝即时交易+扫码支付

时间:2020-08-16 10:39:49 php语言 我要投稿

整合支付宝即时交易+扫码支付

  Thinkphp5技术小技巧,下面是由百分网小编为大家整理的整合支付宝即时交易+扫码支付,喜欢的可以收藏一下!了解更多详情资讯,请关注应届毕业生考试网!
  
  第一步:在配置文件config.php添加配置文件
  
  'ALIPAY_CONFIG'          => [
  
  'partner'            => '' // partner 从支付宝商户版个人中心获取
  
  'seller_email'       => '' // email 从支付宝商户版个人中心获取
  
  'key'                => '' // key 从支付宝商户版个人中心获取
  
  'sign_type'          => strtoupper(trim('MD5')) // 可选md5  和 RSA
  
  'input_charset'      => 'utf-8' // 编码 (固定值不用改)
  
  'transport'          => 'http' // 协议  (固定值不用改)
  
  'cacert'             => EXTEND_PATH.'Alipay/cacert.pem'  // cacert.pem存放的位置 (固定值不用改)
  
  'notify_url'         => '' // 异步接收支付状态通知的`链接
  
  'return_url'         => '' // 页面跳转 同步通知 页面路径 支付宝处理完请求后当前页面自 动跳转到商户网站里指定页面的 http 路径。 (扫码支付专用)
  
  'private_key_path'   => '' //移动端生成的私有key文件存放于服务器的 绝对路径 如果为MD5加密方式;此项可为空 (移动支付专用)
  
  'public_key_path'    => '' //移动端生成的公共key文件存放于服务器的 绝对路径 如果为MD5加密方式;此项可为空 (移动支付专用)
  
  ]
  
  第二步:在公共文件common.php添加公共函数
  
  function alipay($order){
  
  import('Alipay.AlipaySubmit' EXTEND_PATH '.class.php');
  
  // 获取配置
  
  $config=config('ALIPAY_CONFIG');
  
  $data=array(
  
  "_input_charset" => $config['input_charset'] // 编码格式
  
  "logistics_fee" => "0.00" // 物流费用
  
  "logistics_payment" => "SELLER_PAY" // 物流支付方式SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
  
  "logistics_type" => "EXPRESS" // 物流类型EXPRESS(快递)、POST(平邮)、EMS(EMS)
  
  "notify_url" => $config['notify_url'] // 异步接收支付状态通知的链接
  
  "out_trade_no" => $order['out_trade_no'] // 订单号
  
  "partner" => $config['partner'] // partner 从支付宝商户版个人中心获取
  
  "payment_type" => "1" // 支付类型对应请求时的 payment_type 参数原样返回。固定设置为1即可
  
  "price" => $order['price'] // 订单价格单位为元
  
  "quantity" => "1" // price、quantity 能代替 total_fee。 即存在 total_fee就不能存在 price 和 quantity;存在 price、quantity 就不能存在 total_fee。 (没绕明白;好吧;那无视这个参数即可)
  
  "receive_address" => '1' // 收货人地址 即时到账方式无视此参数即可
  
  "receive_mobile" => '1' // 收货人手机号码 即时到账方式无视即可
  
  "receive_name" => '1' // 收货人姓名 即时到账方式无视即可
  
  "receive_zip" => '1' // 收货人邮编 即时到账方式无视即可
  
  "return_url" => $config['return_url'] // 页面跳转 同步通知 页面路径 支付宝处理完请求后当前页面自 动跳转到商户网站里指定页面的 http 路径。
  
  "seller_email" => $config['seller_email'] // email 从支付宝商户版个人中心获取
  
  "service" => "create_direct_pay_by_user" // 接口名称 固定设置为create_direct_pay_by_user
  
  "show_url" => $order['show_url'] // 商品展示网址收银台页面上商品展示的超链接。
  
  "subject" => $order['subject'] // 商品名称商品的标题/交易标题/订单标 题/订单关键字等
  
  );
  
  $alipay=new \AlipaySubmit($config);
  
  $new=$alipay->buildRequestPara($data);
  
  $go_pay=$alipay->buildRequestForm($new 'get''支付');
  
  echo $go_pay;
  
  }
  
  第三步:在控制器创建如Alipay.php文件
  
  public function alipay_return()
  
  {
  
  // 引入支付宝
  
  import('Alipay.AlipayNotify' EXTEND_PATH '.class.php');
  
  $config = $config = config('ALIPAY_CONFIG');
  
  $notify = new \AlipayNotify($config);
  
  // 验证支付数据
  
  $status = $notify->verifyReturn();
  
  if($status){
  
  // 下面写验证通过的逻辑 比如说更改订单状态等等 $_GET['out_trade_no'] 为订单号;
  
  $this->success('支付成功');
  
  }else{
  
  $this->success('支付失败');
  
  }
  
  }
  
  public function alipay_notify()
  
  {
  
  // 引入支付宝
  
  import('Alipay.AlipayNotify' EXTEND_PATH '.class.php');
  
  $config = $config = config('ALIPAY_CONFIG');
  
  $alipayNotify = new \AlipayNotify($config);
  
  // 验证支付数据
  
  $verify_result = $alipayNotify->verifyNotify();
  
  if($verify_result) {
  
  echo "success";
  
  // 下面写验证通过的逻辑 比如说更改订单状态等等 $_POST['out_trade_no'] 为订单号;
  
  }else {
  
  echo "success";
  
  }
  
  }
  
  public function alipay()
  
  {
  
  $data=array(
  
  'out_trade_no'=>time()
  
  'price'=>1
  
  'subject'=>'测试'
  
  );
  
  alipay($data);
  
  }
  
  最后导入sdk文件(群文件下载)/extend/Alipay

【整合支付宝即时交易+扫码支付】相关文章:

支付宝钱包开通高考成绩查询功能11-14

期货交易与现货交易、远期交易的关系05-31

php如何实现验证码09-07

php实现验证码制作06-20

java如何生成验证码呢12-07

电子支付系统的概述05-05

计算机三级即时通信系统09-23

秦王扫六合教学设计12-06

物流信息的整合-共享05-18