zoukankan      html  css  js  c++  java
  • PHP实现app唤起支付宝支付代码

    本文主要和大家分享PHP实现app唤起支付宝支付代码,希望能帮助到大家。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    // 获取 支付宝app 支付字符串

        public function alipay_params_data(){

             

            $data  = $this->ApiData();//获取数据

             

            if(!$data['out_trade_no']){

                systemmess('0','参数错误');

            }

             

            $out_trade_no = $data['out_trade_no'];

     

     

     

            $_biz_data = array();

            $_biz_data['body'] = $oid_body;

            $_biz_data['subject'] = $subject;

            $_biz_data['out_trade_no'] = $out_trade_no;

            $_biz_data['timeout_express'] = "30m";

             $_biz_data['total_amount'] = $price;

            //$_biz_data['total_amount'] = '0.01';

            $_biz_data['product_code'] = 'QUICK_MSECURITY_PAY';

            $_biz_data['passback_params'] = $_type;

            /*

            $bizcontent = "{"body":"".$order_info['data']['oid_body']."","

                            . ""subject": "".$order_info['data']['oid_title']."","

                            . ""out_trade_no": "".$order_info['data']['oid']."","

                            . ""timeout_express": "30m","

                            . ""total_amount": "".$order_info['data']['oid_price']."","

                            . ""product_code":"QUICK_MSECURITY_PAY","

                            . ""passback_params":"".$_type."""

                            . "}";

            */

            $bizcontent = json_encode($_biz_data);

             

            $alipay_config = C('ALIPAY_CONFIG');

             

            //异步通知地址

             

            $return_url = 'http://'.$_SERVER['HTTP_HOST'].''.U('Appreturn/notify_alipay');

             

            //配置信息

            Vendor('alipay-appsdk.aop.AopClient');

            Vendor('alipay-appsdk.aop.request.AlipayTradeAppPayRequest');

            $aop = new AopClient();

            $aop->gatewayUrl = "https://openapi.alipay.com/gateway.do";

            $aop->appId = $alipay_config['app_id'];

            $aop->rsaPrivateKey = $alipay_config['merchant_private_key'];

            $aop->format = "json";

            $aop->charset = "UTF-8";

            $aop->signType = "RSA";

            $aop->alipayrsaPublicKey = $alipay_config['alipay_public_key'];

            //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay

            $request = new AlipayTradeAppPayRequest();

            //SDK已经封装掉了公共参数,这里只需要传入业务参数

             

            $request->setNotifyUrl($return_url);

            $request->setBizContent($bizcontent);

            //这里和普通的接口调用不同,使用的是sdkExecute

            $response = $aop->sdkExecute($request);

            //htmlspecialchars是为了输出到页面时防止被浏览器将关键参数html转义,实际打印到日志以及http传输不会有这个问题

            // echo ;//就是orderString 可以直接给客户端请求,无需再做处理。

             

            // json_echo(1,"ok",array('text'=>htmlspecialchars($response)));exit;

             

            $json['msg'] ='1';

            $json['state'] ='1';

            $json['text'] =$response;

            $json['return_url'] =$return_url;

        //  $json['alipay_config'] =$alipay_config;

        //  $json['aop'] =$request;

            echo json_encode($json);exit;

            //json_echo(1,"ok",array('text'=>$response,'return_url'=>$return_url));exit;

        }

     

     

     

     

    //异步通知地址

        public function notify_alipay(){

            $alipay_config = C('ALIPAY_CONFIG');

            $_post_data = $_POST;

            $_sign_type = $_post_data['sign_type'];

            $_sign = $_post_data['sign'];

            S('zfbpost'.time(),$_POST);

            M('log')->add(array('title'=>'支付宝','content'=>json_encode($_POST)));

            // unset($_get_data['sign']);

            // unset($_get_data['sign_type']);

            Vendor('alipay-appsdk.aop.AopClient');

            $aop = new AopClient();

            $aop->alipayrsaPublicKey = $alipay_config['alipay_public_key'];

            //$result = $aop->rsaCheckV1($_post_data, NULL, "RSA2");

            //$result = $aop->rsaCheckV1($_post_data, NULL, "RSA");

            $result = $aop->rsaCheckV1($_post_data, NULL, "RSA");

            // $result = true;

            if($result){

                //print_r($_post_data);

                $_type = $_post_data['passback_params'];

                //商户订单号

                $out_trade_no = $_post_data['out_trade_no'];

                //支付宝交易号

                $trade_no = $_post_data['trade_no'];

                //交易状态

                $trade_status = $_post_data['trade_status'];

                 

                 

                 

                            //已下修改订单信息

     

     

                /* if($_post_data['trade_status'] == 'TRADE_FINISHED'){

                    $this->edit_order_info($_type,$out_trade_no,$_post_data['trade_no'],$_post_data['gmt_payment'],$_post_data['total_amount'],'alipay',$_post_data);

                    //注意:

                    //退款日期超过可退款期限后(如三个月可退款),支付宝系统发送该交易状态通知

                }elseif($_post_data['trade_status'] == 'TRADE_SUCCESS'){

                    $this->edit_order_info($_type,$out_trade_no,$_post_data['trade_no'],$_post_data['gmt_payment'],$_post_data['total_amount'],'alipay',$_post_data);

                    //注意:

                    //付款完成后,支付宝系统发送该交易状态通知

                } */

                //——请根据您的业务逻辑来编写程序(以上代码仅作参考)——

                echo "success";     //请不要修改或删除

            }else{

                // 验证失败

                echo "fail".json_encode($result);   //请不要修改或删除

            }

             

            // F('APP_ALIPAY_POST_'.$_POST['passback_params'].'_'.time(),array($_post_data,$result));

        }

     

     

     

     

     

  • 相关阅读:
    canvas 方法参数智能提示
    layui 关闭弹窗,刷新父窗体页面
    UI设计灵感集结地
    Java Poi 读取excel 对所有类型进行处理
    jeecg v3.6.6 excel导入js方法完善
    父、子页面之间页面元素的获取,方法的调用
    ps载入渐变
    ps载入画笔
    做设计常用的素材下载网站
    色彩搭配神器
  • 原文地址:https://www.cnblogs.com/jasonLiu2018/p/11848487.html
Copyright © 2011-2022 走看看