hi,你好!欢迎访问本站!登录
本站由网站地图腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 后端开发 - 正文 君子好学,自强不息!

相识php完成的付出宝网页付出功用【基于TP5框架】_后端开发

2020-08-02后端开发搜奇网3°c
A+ A-

本文实例报告了php完成的付出宝网页付出功用。分享给人人供人人参考,细致以下:

1.提交付出要求

require_once './payment/zfb/pagepay/service/AlipayTradeService.php';
require_once './payment/zfb/pagepay/buildermodel/AlipayTradePagePayContentBuilder.php';
$payInfo=Db::name('pay_type')->where(['pay_id'=>1])->find();
$zfb=json_decode($payInfo['pay_json'],true);
$config=[
  'app_id'=>$zfb['app_id'],
  'merchant_private_key'=>$zfb['merchant_private_key'],
  'notify_url'=>config('z_notify_url'),
  'return_url'=>config('z_return_url'),
  'charset'=>config('charset'),
  'sign_type'=>config('sign_type'),
  'gatewayUrl'=>config('gatewayUrl'),
  'alipay_public_key'=>$zfb['alipay_public_key']
];
//商品定单号
$out_trade_no=$orderData['order_number'];
//定单称号,必填
$subject='充值定单';
//付款金额
$total_amount=$money;
//商品形貌
$body = $out_trade_no . '-' . $this->agent_id.'-'.$money;
$payRequestBuilder = new \AlipayTradePagePayContentBuilder();
$payRequestBuilder->setBody($body);
$payRequestBuilder->setSubject($subject);
$payRequestBuilder->setTotalAmount($total_amount);
$payRequestBuilder->setOutTradeNo($out_trade_no);
$aop = new \AlipayTradeService($config);
$response = $aop->pagePay($payRequestBuilder,$config['return_url'],$config['notify_url']);
echo $response;

2.异步回调付出宝参数认证

$pay=Db::name('pay_type')->where(['pay_id'=>1])->find();
  $zfb=json_decode($pay['pay_json'],true);
  $config = [
    'app_id' => $zfb['app_id'],
    'merchant_private_key' => $zfb['merchant_private_key'],
    'notify_url' => config('z_notify_url'),
    'return_url' => config('z_return_url'),
    'charset' => config('charset'),
    'sign_type' => config('sign_type'),
    'gatewayUrl' => config('gatewayUrl'),
    'alipay_public_key' => $zfb['alipay_public_key']
  ];
  $arr=$_POST;
  $alipaySevice = new \AlipayTradeService($config);
  $alipaySevice->writeLog(var_export($_POST,true));
  $result = $alipaySevice->check($arr);
  /* 现实考证历程发起商户增加以下校验。
  1、商户须要考证该关照数据中的out_trade_no是不是为商户体系中建立的定单号,
  2、推断total_amount是不是确实为该定单的现实金额(即商户定单建立时的金额),
  3、校验关照中的seller_id(或许seller_email) 是不是为out_trade_no这笔票据的对应的操纵方
  (有的时刻,一个商户可能有多个seller_id/seller_email)
  4、考证app_id是不是为该商户自身。
  */
  if($result) {//考证胜利
    ////////////////////////////////////////////////////////////////////////////////
    //请在这里加上商户的营业逻辑程序代
    //——请依据您的营业逻辑来编写程序(以下代码仅作参考)——
    //猎取付出宝的关照返回参数,可参考手艺文档中服务器异步关照参数列表
    //商户定单号
    $out_trade_no = $_POST['out_trade_no'];
    //付出宝生意业务号
    $trade_no = $_POST['trade_no'];
    //生意业务状况
    $trade_status = $_POST['trade_status'];
    //生意业务金额
    $total_amount = $_POST['total_amount'];
    if($_POST['trade_status'] == 'TRADE_FINISHED') {
      //推断该笔定单是不是在商户网站中已做过处置惩罚
      //假如没有做过处置惩罚,依据定单号(out_trade_no)在商户网站的定单体系中查到该笔定单的细致,
      并实行商户的营业程序
      //请务必推断要求时的total_amount与关照时猎取的total_fee为一致的
      //假如有做过处置惩罚,不实行商户的营业程序
      //注重:
      //退款日期凌驾可退款限期后(如三个月可退款),付出宝体系发送该生意业务状况关照
    } else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {
      //推断该笔定单是不是在商户网站中已做过处置惩罚
      //假如没有做过处置惩罚,依据定单号(out_trade_no)在商户网站的定单体系中查到该笔定单的细致,
      并实行商户的营业程序
      //请务必推断要求时的total_amount与关照时猎取的total_fee为一致的
      //假如有做过处置惩罚,不实行商户的营业程序
      //注重:
      //付款完成后,付出宝体系发送该生意业务状况关照
      //此处应当更新一下定单状况,商户自行增删操纵
       这里写你的逻辑程序
    }
    //——请依据您的营业逻辑来编写程序(以上代码仅作参考)——
    echo 'success';
  }else {
    //考证失利
    echo "fail";
  }
}

3.同步回调页面跳转处置惩罚 同步只是做一个跳转处置惩罚 不要写任何数据处置惩罚

$pay=Db::name('pay_type')->where(['pay_id'=>1])->find();
$zfb=json_decode($pay['pay_json'],true);
$config = [
  'app_id' => $zfb['app_id'],
  'merchant_private_key' => $zfb['merchant_private_key'],
  'notify_url' => config('z_notify_url'),
  'return_url' => config('z_return_url'),
  'charset' => config('charset'),
  'sign_type' => config('sign_type'),
  'gatewayUrl' => config('gatewayUrl'),
  'alipay_public_key' => $zfb['alipay_public_key']
];
$arr=$_GET;
$alipaySevice = new \AlipayTradeService($config);
$result = $alipaySevice->check($arr);
/* 现实考证历程发起商户增加以下校验。
1、商户须要考证该关照数据中的out_trade_no是不是为商户体系中建立的定单号,
2、推断total_amount是不是确实为该定单的现实金额(即商户定单建立时的金额),
3、校验关照中的seller_id(或许seller_email) 是不是为out_trade_no这笔票据的对应的操纵方
(有的时刻,一个商户可能有多个seller_id/seller_email)
4、考证app_id是不是为该商户自身。
*/
if($result) {//考证胜利
  ///////////////////////////////////////////////////////////////////////////////
  //请在这里加上商户的营业逻辑程序代码
  //——请依据您的营业逻辑来编写程序(以下代码仅作参考)——
  //猎取付出宝的关照返回参数,可参考手艺文档中页面跳转同步关照参数列表
  //商户定单号
  $out_trade_no = htmlspecialchars($_GET['out_trade_no']);
  //付出宝生意业务号
  $trade_no = htmlspecialchars($_GET['trade_no']);
  $this->success("付出胜利",url('Index/index'));
  //——请依据您的营业逻辑来编写程序(以上代码仅作参考)——
  ///////////////////////////////////////////////////////////////////////////
}
else {
  //考证失利
  echo "考证失利";
}

相干进修引荐:PHP编程从入门到通晓

以上就是相识php完成的付出宝网页付出功用【基于TP5框架】的细致内容,更多请关注ki4网别的相干文章!

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
相识php完成的付出宝网页付出功用【基于TP5框架】_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章

本文来源:搜奇网

本文地址:https://www.sou7.cn/298777.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。