TP框架支付宝小程序支付

news/2024/7/20 3:30:05 标签: php, 小程序, 接口

支付宝小程序支付(支付宝小程序支付使用的是支付宝app支付),同样的支付需要跳转回小程序内进行支付原理

tp方法

public function alipay(){
        vendor('appalipay.AopSdk');// 加载类库
        $config = array(
            'appid' =>'小程序appid',//商户密钥
            'rsaPrivateKey' =>'',//私钥
            'alipayrsaPublicKey'=>'',//公钥
            'charset'=>strtolower('utf-8'),//编码
            'notify_url' =>'回调验签地址',//回调地址(支付宝支付成功后回调修改订单状态的地址)
            'payment_type' =>1,//(固定值)
            'seller_id' =>'支付宝账号',//收款商家账号
            'charset'    => 'utf-8',//编码
            'sign_type' => 'RSA2',//签名方式
            'timestamp' =>date("Y-m-d H:i:s"),
            'version'   =>"1.0",//固定值
            'url'       => 'https://openapi.alipay.com/gateway.do',//固定值
            'method'    => 'alipay.trade.app.pay',//固定值
        );
        //业务请求参数-订单
        $body = '自定义什么就什么';
        $title = '自定义什么就什么';
        $price = 0.01;//支付金额(分)
        $content = array();
        $content['body'] = $body;
        $content['subject'] = $title;// 订单标题
        $content['out_trade_no'] = 订单号;//商户网站唯一订单号
        $content['timeout_express'] = '1d';//该笔订单允许的最晚付款时间
        $content['total_amount'] = floatval($price);//订单总金额(浮点型)
        $content['seller_id'] = '支付宝账号';
        $content['product_code'] = 'QUICK_MSECURITY_PAY';//销售产品码,商家和支付宝签约的产品码,为固定值QUICK_MSECURITY_PAY
        $content['store_id'] = '001';//商户门店编号
        $con = json_encode($content);//$content是biz_content的值,将之转化成字符串
        //公共参数
        $param = array();
        $Client = new \AopClient();//实例化支付宝sdk里面的AopClient类,下单时需要的操作
        $param['app_id'] = $config['appid'];//APPID
        $param['method'] = $config['method'];//接口名称
        $param['charset'] = $config['charset'];//请求使用的编码格式
        $param['sign_type'] = $config['sign_type'];//商户生成签名字符串所使用的签名算法类型
        $param['timestamp'] = $config['timestamp'];//发送请求的时间
        $param['version'] = $config['version'];//调用的接口版本,固定为:1.0
        $param['notify_url'] = $config['notify_url'];//支付宝服务器主动通知地址
        $param['biz_content'] = $con;//业务请求参数的集合json格式
        //生成签名
        $paramStr = $Client->getSignContent($param);
        $sign = $Client->alonersaSign($paramStr,$config['rsaPrivateKey'],'RSA2');
        $param['sign'] = $sign;
        $str['data'] = $Client->getSignContentUrlencode($param);
        return json_encode($str); // 最后生成的参数返回给小程序调起支付
    }

 


http://www.niftyadmin.cn/n/1365595.html

相关文章

Rebar:Erlang构建工具

Rebar是一款Erlang的构建工具,使用它可以方便的编译、测试erlang程序、内联驱动和打包Erlang发行版本。 Rebar是一个独立的erlang脚本,所以使用Rebar发布程序非常简单,甚至可以直接集成在项目文件夹中。默认的情况下,Rebar会按照E…

PHP 两个日期时间相差天数

$start_time time(); // 当前时间 $end_time time(); // 结束时间if($end_time < $start_time) return 结束时间不能小于开始时间; $start_date date(Y-m-d, $start_time); $end_date date(Y-m-d, $end_time ); $datetime_start new \DateTime($start_date); $datetime…

跟着Artech学习WCF(1)

以前 看了一次&#xff0c;但由于急于求成&#xff0c;想迅速的和公司的WCF挂上钩&#xff0c;结果搞着搞着就搞不明白 第一节 就郁闷host 都调试了Client怎么引用 呢 郁闷了半天 最后直接到\bin\Debug 目录下搞.exe 运行一下就OK了转载于:https://www.cnblogs.com/qqloving/ar…

腾讯IM php后端接口

引入IM类 use Hedeqiang\TenIM\IM; 添加IM账号 /*** 添加IM账号* param [type] $userid [用户id]*/ function add_imimport($user_id){$config [sdk_app_id > 14app_id,// 腾讯IM appididentifier > administrator,secret_key > 2b2daba42f4a2a // 腾讯IM秘钥];$i…

下载Compiere官方源代码

准备SVN工具Compiere的源代码存放在自己的svn服务器http://svn.compiere.com/&#xff0c;所以我们首先要安装svn工具&#xff0c;如TortoiseSVN&#xff08;http://tortoisesvn.net/downloads.html&#xff09;。注册Compiere的svn账号访问注册页面https://www.compiere.com/w…

支付宝身份认证(刷脸)小程序PHP

支付宝小程序的身份认证&#xff0c;需要添加支付宝&#xff08;支付宝身份验证&#xff09;能力&#xff0c;签约成功后可以开始了 TP代码 public function aliUserCode(): array {// 引入支付宝SDKvendor(.alipayapp.aop.AopClient);vendor(.alipayapp.aop.request.AlipayUs…

ArcEngine开发总结-(2)矢量数据渲染

包括分级渲染、简单渲染、唯一值渲染、柱状图渲染、饼状图渲染 /// <summary>/// 生成分级渲染符号图/// </summary>/// <param name"pFiledName">分级字段</param>///<param name"ClassifyItems">分级信息数组</param&…

web端a标签文件下载服务端实现下载功能(解决浏览器兼容问题)

后台使用TP public function downloadFile() {$filePath 文件路径;$readBuffer 1024;$allowExt [jpeg, jpg, peg, gif, zip, rar, txt];//检测下载文件是否存在,权限if (!is_file($filePath) && !is_readable($filePath)) {return false;}//检测文件类型$ext strt…