基于PHP支付类接口函数

1.$str .= $key.'='.$value.'&';.&'是什么意思。

2.sha1() 函数使用美国 Secure Hash 算法 1。来自 RFC 3174 的解释 - 美国 Secure Hash 算法 1:SHA-1 产生一个名为报文摘要的 160 位的输出。报文摘要可以被输入到一个可生成或验证报文签名的签名算法。对报文摘要进行签名,而不是对报文进行签名,这样可以提高进程效率,因为报文摘要的大小通常比报文要小很多。数字签名的验证者必须像数字签名的创建者一样,使用相同的散列算法。

3.openssl_pkcs12_read()函数:openssl_pkcs12_read — 将 PKCS#12 证书存储区解析到数组中

4CER有两层意思:1. 用于存储公钥证书的文件格式。

5.在PHP中,openssl_sign函数用于使用私钥对数据进行签名。其基本用法如下:

openssl_sign(string $data, string &$signature, mixed $private_key [, mixed $algorithm = OPENSSL_ALGO_SHA256]): bool

private static function sign($data){
        $pk = self::$private_key;
        openssl_sign($data, $sign, $pk);
        $sign = base64_encode($sign);
        return $sign;
    }

咋一看KaTeX parse error: Expected 'EOF', got '#' at position 42: …函数有点不一样,捂脸.... #̲语法是这样的: **opens…data, s i g n , sign, sign,pk); 传入了 d a t a 数 据 o p e n s s l s i g n ( ) 对 data数据 openssl_sign()对 data数据openssl 
s
​    
 ign()对data进行签名,用的是静态变量 p r i v a t e k e y , 签 名 完 成 后 返 回 了 private_key,签名完成后返回了 private 
k
​    
 ey,签名完成后返回了sign 作为签名结果,然后再base64_encode() 进行二进制编码,然后返回编码过后的签名*

参数说明:

$data: 要签名的数据。

$signature: 签名后的数据将会存储在此变量中。

$private_key: 用于签名的私钥,可以是私钥的文件路径、资源或者 PEM 格式的私钥字符串。

$algorithm: 签名算法,默认为OPENSSL_ALGO_SHA256。 

6.->作用:符号是“插入式解引用操作符”。换句话说,它用来调用由引用传递参数的子程序的方法(当然,还有其它的作用)。正如我们上面所提到的,在调用php的函数的时候,大部分参数都是通过引用传递的。php中的‘->’功能就和它们在perl或c++中一样列子:

7.Yii::$app:应用主体是管理 Yii 应用系统整体结构和生命周期的对象。 每个 Yii 应用系统只能包含一个应用主体,应用主体在 入口脚本 中创建并能通过表达式 \Yii::$app 全局范围内访问。

     Yii有两种应用主体: 网页应用主体 和 控制台应用主体, 如名称所示,前者主要处理网页请求,后者处理控制台请求。个人:返回此应用的一些参数如:

Yii::$app->getHomeUrl();  // 返回首页 URL
Yii::$app->getTimeZone();  // 返回此应用使用的时区
Yii::$app->getVendorPath();  // 返回 vendor 目录
Yii::$app->getRuntimePath();  // 返回此应用运行时临时文件的目录
Yii::$app->getBasePath();  // 返回此应用的根目录
Yii::$app->getLayoutPath();  // 返回此应用的布局视图目录
Yii::$app->getViewPath();  // 返回此应用的视图目录
Yii::$app->getControllerPath();  // 返回此应用的控制器的目录
Yii::$app->getVersion();  // 返回此应用的版本号

 8.Url::toRoute()函数获取当前路径。绝对路径相对路径等。

Url::toRoute(['payment/unionpayreturn'], true), //前台通知地址 

 'backUrl' => Url::toRoute(['payment/unionpaynotify'], true), //后台通知地址

9.openssl_verify( )函数:verify命令对证书的有效性进行验证,verify 指令会沿着证书链一直向上验证,直到一个自签名的CA。

10.openssl_x509_parse - 解析X509证书并以数组形式返回信息。openssl_x509_read - 解析X.509证书并返回其资源标识符。

11.

<?php

class union{

    public $params=array(

    'a'=>'1','b'=>'5','c'=>'3','d'=>'4'

);

   public  $x='bbb';

   public function arr(){

    $p=$this->params;//调用类中的公共参数的方法。

    foreach($p as $k => $v){

    $c=$this->x;//调用类中的公共参数的方法。且如果是放在循环外面返回才是:bbba=1&b=5&c=3&d=4&。在里面结果不对。并且return放在循坏里面也不对。返回bbba=1&。很怪。

    $c .=$k .  $v ;

    echo $c;

   }

   //return $c;循环外只返回了最后一个.。

}

//echo $x;

}

$union=new union();

$union->arr();//循环外只返回了最后一个。以及明白了$this->和->的用法。

?>

12.mt_rand(min,max)随机生成中间的数。

I 函数的作用是获取系统变量,必要时还可以对变量值进行过滤及强制转化,I 函数的语法格式:

I('变量类型.变量名/修饰符',['默认值'],['过滤方法或正则'],['额外数据源'])。M方法用于实例化一个基础模型类,和D方法的区别在于: 
1、不需要自定义模型类,减少IO加载,性能较好; 
2、实例化后只能调用基础模型类(默认是Model类)中的方法; 
3、可以在实例化的时候指定表前缀、数据库和数据库的连接信息; 
D方法的强大则体现在你封装的自定义模型类有多强,不过随着新版ThinkPHP框架的基础模型类的功能越来越强大,M方法也比D方法越来越实用了。 类似于创建一个表格对象?
M方法的调用格式: 
M('[基础模型名:]模型名','数据表前缀','数据库连接信息') 
我们来看下M方法具体有哪些用法: 
1、实例化基础模型(Model) 类 

在没有定义任何模型的时候,我们可以使用下面的方法实例化一个模型类来进行操作。

13.Find函数是一种在文本中查找指定字符串的功能。它可以帮助用户快速定位所需的文本,并返回该字符串在文本中的位置。Find函数的使用方法相对简单,下面将详细介绍如何使用Find函数

14.

file_put_contents() 函数把一个字符串写入文件中。该函数访问文件时,遵循以下规则

int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )

15.where方法的用法是ThinkPHP查询语言的精髓,也是ThinkPHP ORM的重要组成部分和亮点所在,可以完成包括普通查询、表达式查询、快捷查询、区间查询、组合查询在内的查询操作。where方法的参数支持字符串和数组,虽然也可以使用对象但并不建议。

$User = M("User"); // 实例化User对象
$User->where('type=1 AND status=1')->select(); 
//相当于SELECT * FROM think_user WHERE type=1 AND status=1

16.setInc()函数, 自增。

<?php
namespace app\index\controller;
use think\Db;
class Index {
    public function index(){

    //1.更新id=1010的记录,将age 字段 加 10
    Db::table('tp5_staff') -> where('id',1010) -> setInc('age',10);

    //查询id=1010的记录
    dump(Db::table('tp5_staff')->find(1010));            
 } 
}
rray(7) {
  ["id"] => int(1010)
  ["name"] => string(9) "欧阳峰"
  ["sex"] => int(1)
  ["age"] => int(28)    //之前为18,现在已更新为28,自增成功
  ["salary"] => float(4900)
  ["dept"] => int(2)
  ["hiredate"] => string(10) "2013-09-22"
}

phpstudy中含有数据库操作的。 

11.thinkphp安装:安装composer。直接next。安装路径上面有php相关默认安装路径即不用管直接安装。打开cmd。用cd等命令进入到thp6要安装到目录安装,网上有composer安装thp命令。本人使用的是phpsthdy_pro。vsc项目目录在www处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值