PHP app 唤起支付宝支付 获取链接【项目实例】

// 获取 支付宝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));
}

原文地址:http://blog.51cto.com/9300893/2088603

时间: 2024-11-09 04:42:00

PHP app 唤起支付宝支付 获取链接【项目实例】的相关文章

PHP app 唤起微信支付 获取链接【项目实例】

public function weixin_params_data(){  $data  = $this->ApiData();   //获取接口访问的数据 //$_type = $post_data['type']; if(!$data['out_trade_no']){ systemmess('0','参数错误'); } $WxPayConfig = array( 'APPID'=>'wxc123456789', 'MCHID'=>'123456', 'KEY'=>'KEY'

iOS app集成支付宝支付流程及后台php订单签名处理

iOS app集成支付宝支付流程 1: 开通支付宝商户 由公司去支付宝 https://b.alipay.com/order/serviceIndex.htm 签约支付宝开通支付宝商家: 2:商户支付宝开通无线支付功能 开通商户支付宝之后,虽然可以获取到应用使用的 key和id,如果如果不开通无线支付功能的话,会在app集成的时间 提示商户未开通无线支付功能的错误: 开通商户支付宝-无线支付功能,请在商户支付宝后台,按要求提供审核材料开通: 3:在商户支付宝后台下载SDK 在商户支付宝后台,即可

Android app 第三方支付宝支付接入

支付宝的接入相对比较简单,看看支付宝官网的文档基本都能搞定,但是切记一点让你们的后台也要搞清楚支付宝的流程,不然对接起来是一件很蛋疼的事情. 开始搬砖 注意事项 开发前一定要阅读支付宝官方文档 强烈建议签名等处理在后台处理,我这个是测试是在自己本地写的,不要吐槽 想获取支付宝合作商户ID,及支付宝公钥请点击支付宝链接,生成密钥及PKCS8转码工具在文档中 添加android.permission.INTERNET权限和android.permission.ACCESS_NETWORK_STATE

PHP TP5框架-手机APP端支付宝支付

最近应业务需求,做了支付宝支付和微信支付,今天分享一下手机端app支付宝支付对接流程,实际开发过程是前后端分离,前端调用后端API接口,实现功能返回数据,我所用的跨挤啊为TP5,大致可以分为四步: 1.在蚂蚁金服开放平台创建应用,签约商户,生成应用公钥和私钥: 2.配置统一下单支付参数: 3.整合支付宝demo类文件: 4.创建Alipay支付类,类内创建两个方法(alipay_app:统一下单方法和alipay_notify:支付成功异步回调方法); 第一步主要是在蚂蚁金服开放平台登录你的支付

app微信支付宝支付后台的插件模式+回调通过spring广播处理后续业务(已亲测可用)

写在前面的话:每当我们做一个项目,基本上都会涉及到支付的业务,最常用的莫过于微信和支付宝的支付了,项目有bug,有问题,都不叫问题,可一旦钱出了问题,那就是大问题了,所以在支付业务上我们必须慎之又慎! 但是我们做开发的,并不是在一个项目中完成支付模块就万事大吉了,在下一个项目中,我们是不是又要将支付模块的代码复制粘贴一遍,然后再重改支付模块?这样的坏处是频繁修改支付模块难免出现一些我们自己都意识不到的问题,一旦暴露在一些不怀好心的又懂技术的人面前,那我们哭都不知道去找谁. 所以,我试着通过利用s

最近接触的几种APP支付方式——支付宝支付

项目是在VS2017上.基于.net core 开发的web api 接口 所有的支付接入之前都要先申请好自己的商户平台,还有有一个账户用于测试使用,这些没有事先配置好,那么接下来的开发会无从下手的(个人建议),进入正题 1.首先配置好申请的商户id.支付账号id(个人建议新手最好用配置文件保存,不建议写死在代码中) 2.添加引用--AlipaySdk 3.引用添加好了后,接下来的代码与微信很类似,几乎相同,核心代码如下: sdk里面的用法有好几种,视情况而定.我用的是最后一种,具体参数源码如下

H5 网站支付宝支付(前端部分)包含微信浏览器中的处理方法。

手机网站唤起支付宝支付: H5 网站实现支付宝支付是一个很常见的需求: 实现方式主要是在后台配置和预支付, 前端需要做的就是唤起 支付宝App 然后就可以输入密码支付. 这个其实难度很低, 主要就是在后台返回的签名加上支付宝给的 基本访问前缀 拼接 URL 然后通过方法 window.location.href 方法打开拼接后的 URL 即可唤起支付宝支付. 微信浏览器打开网站使用支付宝支付: 这个比较坑爹,微信浏览器会当掉 支付宝的 URL 链接,只能去浏览器中打开就可 1.一般直接通过 wi

(转载)Android支付宝支付封装代码

Android支付宝支付封装代码 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-12-22我要评论 这篇文章主要介绍了Android支付宝支付封装代码,Android支付的时候肯定会使用支付宝进行支付,封装可以简化操作步骤,感兴趣的小伙伴们可以参考一下 在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装. 封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用. ? 1 2 3 4 5 6 7 8

手机APP支付--整合支付宝支付控件

长话短说,本文根据支付宝官方说明文档,简单总结下,并且说明下开发过程碰到的问题以及该如何解决. 整合步骤: 1 登录商家服务网站,下载开发包,地址:https://b.alipay.com/order/techService.htm, 下方选择“移动支付” 2 下载的开发包里面包含整合文档<支付宝钱包支付接口开发包2.0标准版.pdf><支付宝钱包支付接口开发包2.0标准版接入与使用规则.pdf> 3 开发人员都请先看下<支付宝钱包支付接口开发包2.0标准版.pdf>