PHP直播源码支付回调的使用

编程入门 行业动态 更新时间:2024-10-21 16:26:07

PHP直播源码支付<a href=https://www.elefans.com/category/jswz/34/1771356.html style=回调的使用"/>

PHP直播源码支付回调的使用

PHP直播源码在支付充值方面,对支付宝的依赖还蛮大的,伴随支付宝支付的使用,在PHP直播源码中加入支付宝支付和回调变得越来越平常,下面就给各位分析一下,如何实现PHP直播源码支付回调的使用。
一、支付宝的接入及配置
1、登录支付宝开放平台(.htm),进入开放平台,点击右上角,密钥管理—>mapi网关产品密钥—>RSA(SHA1)秘钥设置;

【注意:如果之前已经设置过的话,请确认是否有APP项目在使用该密钥】
2、使用秘钥生成工具,根据自身需求生成成对的公私钥;
私钥 (下载rsa签名验签工具)

二、支付宝回调使用
PHP直播源码在接收到用户的充值请求后,会自行调起支付宝支付进行支付,可将支付宝相关配置参数放到后台进行填写,方便更改替换。php的web端下载支付宝对应的sdk进行引入使用。

1、PHP直播源码在后台需要添加的支付宝配置文件内容

//合作身份者id,以2088开头的16位纯数字
$alipay_config['partner']		= '根据实际情况填写';
//商户的私钥(后缀是.pen)文件相对路径
$alipay_config['private_key_path']	= dirname(__FILE__).'/key/rsa_private_key.pem';
//支付宝公钥(后缀是.pen)文件相对路径
$alipay_config['ali_public_key_path']= dirname(__FILE__).'/key/alipay_public_key.pem';
//签名方式 
$alipay_config['sign_type']    = strtoupper('RSA');
//字符编码格式 目前支持 gbk 或 utf-8
$alipay_config['input_charset']= strtolower('utf-8');
//ca证书路径地址,用于curl中ssl校验
//请保证cacert.pem文件在当前文件夹目录中
$alipay_config['cacert']    = dirname(__FILE__).'/cacert.pem';
//访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http
$alipay_config['transport']    = 'http';	

2、回调,

//支付宝 回调public function notify_ali() {$configpri=getConfigPri();require_once(CMF_ROOT."sdk/alipay_app/alipay.config.php");//合作身份者id$alipay_config['partner']		= $configpri['aliapp_partner'];      require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_core.function.php");require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_rsa.function.php");require_once(CMF_ROOT."sdk/alipay_app/lib/alipay_notify.class.php");引入需要的文件及配资信息,根据实际情况填写
//计算得出通知验证结果$alipayNotify = new \AlipayNotify($alipay_config);$verify_result = $alipayNotify->verifyNotify();$this->logali("ali_data:".json_encode($_POST));if($verify_result) {//验证成功//获取商户订单号、支付宝交易号、交易状态等【根据自己的实际需求			获取需要的参数】$out_trade_no = $_POST['out_trade_no'];						if($_POST['trade_status'] == 'TRADE_FINISHED') {//判断该笔订单是否在商户网站中已经做过处理//如果有做过处理,根据实际业务来编写程序	}else if ($_POST['trade_status'] == 'TRADE_SUCCESS') {//判断该笔订单是否在商户网站中已经做过处理//如果没有做过处理,根据实际业务来编写程序			}					}else {$this->logali("验证失败");		//验证失败echo "fail";
//调试用,写文本函数记录程序运行情况是否正常//logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");}					}

3、初始化AlipayNotify及获取验证结果的业务说明
(1)验证结果

	function verifyNotify(){if(empty($_POST)) {//判断POST来的数组是否为空return false;}else {//生成签名结果$isSign = $this->getSignVeryfy($_POST, $_POST["sign"]);//获取支付宝远程服务器ATN结果(验证是否是支付宝发来的消息)$responseTxt = 'false';if(!empty($_POST["notify_id"])){
$responseTxt= $this->getResponse($_POST["notify_id"]);}//注意:$responsetTxt的结果不是true,与服务器设置问题、合作身份者ID、notify_id一分钟失效有关,isSign的结果不是true,与安全校验码、请求时的参数格式(如:带自定义参数等)、编码格式有关if (preg_match("/true$/i",$responseTxt) && $isSign) {return true;} else {return false;}}

(2)获取签名结果

function getSignVeryfy($para_temp, $sign) {//除去待签名参数数组中的空值和签名参数$para_filter = paraFilter($para_temp);//对待签名参数数组排序$para_sort = argSort($para_filter);	//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串$prestr = createLinkstring($para_sort);		$isSgin = false;switch (strtoupper(trim($this->alipay_config['sign_type']))) {case "RSA" :
$isSgin = rsaVerify($prestr, trim($this->alipay_config['ali_public_key_path']), $sign);break;default :$isSgin = false;}return $isSgin;

(3)服务器ATN结果

function getResponse($notify_id) {$transport = strtolower(trim($this->alipay_config['transport']));$partner = trim($this->alipay_config['partner']);$veryfy_url = '';if($transport == 'https') {$veryfy_url = $this->https_verify_url;}else {$veryfy_url = $this->http_verify_url;}$veryfy_url = $veryfy_url."partner=" . $partner . "&notify_id=" . $notify_id;$responseTxt = getHttpResponseGET($veryfy_url, $this->alipay_config['cacert']);return $responseTxt;
}

本文对PHP直播源码使用支付宝充值时,支付宝的配置接入及回调的使用进行简单介绍,如有类似需求可进行简单参照,如有其他问题或想进行PHP直播源码开发,可联系官网客服。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

更多推荐

PHP直播源码支付回调的使用

本文发布于:2024-03-09 09:14:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1724572.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:回调   源码   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!