Login
网站首页 > 文章中心 > 其它

在php中集成payfort

作者:小编 更新时间:2023-09-17 19:31:05 浏览量:364人看过

php 后台怎么把多种支付方式集成在一起 可以先择性安装

本文将介绍如何快速通过PHP类库来集成、整合支付宝来实现充值功能.如果你的系统想要扩充积分、账户余额等功能,那么就要选择一个第三方支付系统来充值.

支付宝集成时,需要三大步:

①.、通过表单提交信息,系统整合信息,提交信息到支付宝;

支付宝PHP类

PHP 类alipay_notify,主要功能是付款过程中服务器通知处理.

PHP 类alipay_service,根据支付宝外部服务接口生成支付宝地址.

下面主要主要讲解通过支付宝的PHP类来实现整合.

PHP支付宝集成

第一步,建立提交充值的基本信息:

zhifubao-chongzhi PHP支付宝集成 建立提交充值的基本信息

第二步,验证用户提交的金额正确,通过表单验证后,通过支付宝alipay_service类生成支付宝链接,然后跳转到支付宝链接.

function index() {

$total = intval($_POST['total']);

if (!$total) {

$total = 1;

}

$pay_bank = trim($_POST['pay_bank']);

$account = $_POST['_account'];

$base_path = 'http://'.$_SERVER['HTTP_HOST'].base_path();

$order_id = date('YmdHis', time()); //时间值作为唯一的订单ID号

$subject = $body = 'LixiPHP充值'.$total.'元';

$out_trade_no = date('YmdHis', time()).'-'.$account-student['sid'];

//签约支付宝账号或卖家支付宝帐户

$seller_email = 'seller@alipay.com';

$transport = 'https';//字符编码格式

$parameter = array(

"service" = "create_direct_pay_by_user", //交易类型

"partner" = $partner, //合作商户号

"return_url" = $base_path.'alipay/return', //同步返回

"notify_url" = $base_path.'alipay/notify', //异步返回

"subject" = $subject, //商品名称,必填

"body" = $subject, //商品描述,必填

"out_trade_no" = $out_trade_no, //商品外部交易号,必填(保证唯一性)

"price" = $total, //商品单价,必填(价格不能为0)

"payment_type" = "1", //默认为1,不需要修改

"quantity" = "1", //商品数量,必填

"paymethod" = 'directPay',

"defaultbank" = $pay_bank,

"logistics_fee" ='0.00◆, //物流配送费用

"logistics_payment" ='BUYER_PAY', //物流费用付款方式:SELLER_PAY(卖家支付)、BUYER_PAY(买家支付)、BUYER_PAY_AFTER_RECEIVE(货到付款)

"logistics_type" ='EXPRESS', //物流配送方式:POST(平邮)、EMS(EMS)、EXPRESS(其他快递)

//"receive _mobile" = ", //收货人手机

"show_url" = $base_path, //商品相关网站

"seller_email" = $seller_email, //卖家邮箱,必填

);

require("../libraries/payment/alipay.class.inc");

$alipay = new alipay_service($parameter, $security_code, $sign_type);

$link = $alipay-create_url();

header("Location: ".$link);

用户跳转到支付宝支付界面后,默认的支付银行是在提交表单前选择的网上银行,选择支付宝的话就是使用支付宝余额支付.然后就是等待用户支付了.用户完成支付后,请会发生下面的几个步骤,当然如果用户放弃支付的话,就没有后面的处理了.

第三步,用户进行支付后,支付宝后台通知系统处理.系统处理页面主要是根据生成支付宝链接是使用的notify_url来决定的.它处理完成后,成功返回success,失败返回fail,如果支付宝收到的是fail,那么支付宝还会在隔1小时,1天,1周等周期再次通知服务器处理,这里的周期需求向支付宝询问.如果支付宝收到的是success,注意支付宝好像在一个月后要发送一次TRADE_FINISHED表示交易完成,这个一定不要再给用户加一次充值了.

function alipay_notify() {

$transport = 'https';

$alipay = new alipay_notify($partner,$security_code,$sign_type,$_input_charset,$transport);

$verify_result = $alipay-notify_verify();

//支付宝 Notice verify

if($verify_result) {

//认证合格

//获取支付宝的反馈参数

//获取支付宝传递过来的订单号

$order_id = $_POST['out_trade_no'];

//获取支付宝传递过来的总价格

$total_fee = $_POST['total_fee'];

//拆分订单号为订单和学员ID

$txn_id = explode('-', $order_id);

$real_orderid = $txn_id[0]; //get the real order

$sid = $txn_id[1];

if($_POST['trade_status'] == 'TRADE_SUCCESS') {

//这里放入你自定义代码,比如根据不同的trade_status进行不同操作

mysql_query("UPDATE {student} set balance = balance◆%d where sid = %d", (int) $total_fee, $sid);

mysql_query("INSERT INTO {payment_receipts} (sid, order_id, amount, received) VALUES (%d, '%s', %f, %d)", $sid, $real_orderid, (int) $total_fee, time());

echo "success";

else {

echo "fail";

第四步,用户完成支付后,支付宝前台跳转到系统返回地址.这个页面其实可以只做一个非常简单页面,不用做任何验证.但是为了安全建议也做一下返回验证.但是最后不要在返回页面做数据库操作.

function alipay_return() {

$verify_result = $alipay-return_verify();

$order_id = $_GET['out_trade_no']; //获取订单号

$total_fee = (int) $_GET['total_fee']; //获取总价格

$student = mysql_query("SELECT uid, balance FROM {student} WHERE sid = %d", $sid);

$output .= 'p您目前的余额'.$student-balance.'元./p';

$output .= l('查看记录', 'user/'.$student-uid.'/depositlogs');

return $output;

$output .= 'p您的交易信息是无效的,如果你使用的是已有的返回信息的话,那么交易已经成立,你可以查看我的订单历史.br如果你是黑客的话,俺是守法的好公民,希望你能饶了我这个小店.';

$output .= '/ppa href="/"返回首页/a/p';

如果用户是恶意修改网址参数,将会看到:

callback return failed 如果用户是恶意修改网址参数

如果用户正常通过支付宝自动跳转回来的,将会看到:

callback return success 如果用户正常通过支付宝自动跳转回来的

好的,赶快将以上方法和代码应用到你的积分、账户余额系统把!

怎么在phpweb网站中加paypal代码

第一步:登陆PP的BIZ网站

第七步:根据自己的需求申请API凭证或API证书

希望我的回答有帮到您

PHP的集成环境wampserver,在电脑右下角已经是绿色的了,问题是在网页端可以进去(比如PH

右键重启,看看颜色变化,有的版本黄色、红色等代表有问题,纯白色才是一切正常启动;

php mysql apache 集成环境有哪些

①AppServ (推荐,简洁精简)

XAMPP是一款具有中文说明的功能全面的集成环境,XAMPP并不仅仅针对Windows,而是一个适用于Linux、Windows、Mac OS X 和Solaris 的易于安装的Apache 发行版.软件包中包含Apache 服务器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等.默认安装开放了所有功能,安全性有问题,需要对以下安全问题进行设定.

MySQL 管理员(root)未设置密码.

MySQL 服务器可以通过网络访问.

PhpMyAdmin 可以通过网络访问.

样例可以通过网络访问.

Mercury 邮件服务器和 FileZilla FTP 服务器的用户是公开的.

主页

WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单"开启/关闭"上点点就搞定,省去了修改配置文件的麻烦.

该程序包集成最新的Apache◆PHP◆MySQL◆phpMyAdmin◆ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等.都说到这里了大家应该明白学习PHP只需一个包.

对学习PHP的新手来说,WINDOWS下环境配置是一件很困难的事;对老手来说也是一件烦琐的事.所以呢无论你是新手还是老手,该程序包都是一个不错的选择.

中的启动按钮,即可自动进行相关设置,将Apache和MySQL安装为系统服务并启动.APMServ集合了Apache稳定安全的优点,并拥有跟IIS一样便捷的图形管理界面,同

成.

①.、注意事项:APMServ程序所在路径不能含有汉字和空格.

附加组件:

服务器上用php集成环境好不好呢,哪款集成环境在服务器上使用比较好?

先回答你的第一个问题.

网上有人说适合,也有人说不适合的,不能说他们说的完全错误,但也不能说是完全正确的,具体问题具体分析,这种事情要看情况.

php集成环境的本质是啥?网上那些php集成环境和我们自己安装的有啥区别呢?

其实没多大差别,所谓的php集成环境只不过通过软件替我们完成了一些比较麻烦的操作罢了,本质上没有任何区别!那些程序开发者开发php集成环境软件的时候,都要把apache与mysql等组件集成在软件里面,而这些apache等组件和自己安装的是没啥区别的,不过不建议使用精简版的集成环境,可以使用完全版的php集成环境.

我打个比方,软件的安装版和绿化版其实没毛线区别,有的集成环境集成组件后重新打包成安装版罢了,而有的集成环境集成组件后将其绿化成绿色版集成环境,不过绿化后的php集成环境确实方便,插上U盘,插其他电脑就可以直接运行网站,用软件能省略了很多繁琐步骤,确实很便捷.php集成环境是一种工具,工具本身就是为了方便,当然你也可以自行安装,比较费事罢了,集成环境功能多,方便使用.

关于你的第二个问题"哪款集成环境在服务器上使用比较好?

既然集成环境适合在服务器上运行,那是不是就可以直接用在服务器上?看你的需求了,同时也要看是哪种集成环境.

选择哪种php集成环境做服务器环境主要有以下几点要考虑

①.、大部分php集成环境集成的版本都不是最新(这条无关紧要,因为现在很多网站都不是用最新的,旧版本程序不一定适合新的啊!)

解决:可以选择那些集成了新组件的集成环境,或者能自定义设置版本的php集成环境

解决:你可以选择一些集成了完整版组件的集成环境.

解决:目前有一些php集成环境还是能完全自己修改和自定义配置的,不会被软件自动生死所限制.

具体用哪个,你可以根据自己的需求选择,毕竟每个集成环境都各具特点,按需选择.

phpwamp和PHPCUSTOM这两款集成环境很适合在服务器运行,集成官方完全组件,无阉割无精简,是完全版的,而且支持完全的配置自定义,php版本等自定义,还能同时运行多版本,自带重启任务.

PHPCUSTOM自带重启任务,能定时重启服务器,定时重启网站服务等.

纯绿色很方便,所集成的组件是完全的,适合测试,也比较适合服务器

累死了,纯手工打字啊,采纳我给我赚点分吧.

php开发中app怎么接入支付宝

准备工作

APP支付接口:alipay.trade.app.pay

登录蚂蚁金服开放平台 -- 创建应用 -- 添加App支付功能.具体查看官方文档

支付接口调用原理

①.、APP支付系统架构

APP支付系统架构图

数据校验原理

应用公钥(商户自身的RSA公钥):支付宝使用该公钥验证该交易是商户发起.

支付宝公钥(支付宝的RSA公钥):商户使用该公钥验证该结果是支付宝返回的.

系统交互流程图

在集成App支付能力时,建议实现如下支付流程,创建订单并支付,根据返回的结果确定支付状态,并进行相应的异常处理,其过程如下图所示.

支付场景具体实现流程

代码实现

步骤1:商户APP端请求商户服务器接口,提交订单数据.

官方接口文档:

——代码如下:

vendor('alipay.aop.AopClient');

vendor('alipay.aop.request.AlipayTradeAppPayRequest');

//实例化支付接口

$aop = new \AopClient();

$aop-gatewayUrl = ""; //支付宝网关

$aop-appId = "应用ID,填写你的APPID";

$aop-rsaPrivateKey = "商户私钥,您的原始格式RSA私钥()";

$aop-alipayrsaPublicKey = "支付宝公钥";

$aop-apiVersion = '1.0';

$aop-format = "json";

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

$appRequest = new \AlipayTradeAppPayRequest();

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

$bizcontent = json_encode([

'body' = '余额充值', //订单描述

'subject' = '充值', //订单标题

'total_amount' = '0.01', //订单总金额

'product_code' = 'QUICK_MSECURITY_PAY', //固定值

]);

$appRequest-setNotifyUrl($url); //设置异步通知地址

$appRequest-setBizContent($bizcontent);

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

$response = $aop-sdkExecute($appRequest);

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

// 如果最后有问题可以尝试把htmlspecialchars方法去掉,直接返回$response

说明:sdkExecute()方法,作用生成签名,详细步骤如下:

①.)将请求参数的键按字典排序,然后按照key=valuekey=value方式拼接,得到未签名原始字符串如下:

若用户支付成功,支付宝会同步给商户APP端返回一个支付结果.相应地,支付宝也会通过异步通知给商户服务器端返回一个支付结果.

注意:由于同步通知和异步通知都可以作为支付完成的凭证,且异步通知支付宝一定会确保发送给商户服务端.为了简化集成流程,商户可以将同步结果仅仅作为一个支付结束的通知(忽略执行校验),实际支付是否成功,完全依赖服务端异步通知.

注意点:

①.)必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;

$aop = new AopClient;

$aop-alipayrsaPublicKey = '请填写支付宝公钥,一行字符串';

if($flag){

//校验通知数据的正确性

$out_trade_no = $_POST['out_trade_no']; //商户订单号

$trade_no = $_POST['trade_no']; //支付宝交易号

$trade_status = $_POST['trade_status']; //交易状态trade_status

$total_amount = $_POST[''total_amount']; //订单的实际金额

$app_id = $_POST['app_id'];

if($app_id!=$this-config['app_id']) exit('fail'); //验证app_id是否为该商户本身

//只有交易通知状态为TRADE_SUCCESS或TRADE_FINISHED时,支付宝才会认定为买家付款成功.

if($trade_status != 'TRADE_FINISHED' $trade_status != 'TRADE_SUCCESS')

exit('fail');

//校验订单的正确性

if(!empty($out_trade_no)){

//1、商户需要验证该通知数据中的out_trade_no是否为商户系统中创建的订单号;

//校验成功后在response中返回success,校验失败返回failure

echo"fail"; //验证签名失败

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章