好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php支付接口配置 php 支付

很多站长朋友们都不太清楚php支付接口配置,今天小编就来给大家整理php支付接口配置,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php 手机支付宝接口要配置哪些文件 2、 PHP开发Paypal支付,支付流程和接口实现方案 3、 thinkphp中怎么加入支付宝接口 php 手机支付宝接口要配置哪些文件

登录支付宝,然后有个商户版的,进入申请双功能接口,

然后下载下来的接口包文件有很多语言的源码

我们选择PHP版的UFT-8

里面包括一些文件

images文件里是支付宝相关的一些标志的图片,lib文件很重要,是整个接口的核心类文件;

alipay.config.php是相关参数的配置文件

alipayapi.php 是支付宝接口入口文件

notify_url.php 是服务器异步通知页面文件;

return_url.php 是页面跳转同步通知文件;

按照开发文档开发即可

注:开发文档就是支付宝官方给你的一些文档,这么接入等等的。注意事项。不用担心,下载下来,已经有例子给你的了,你只能修改下配置即可,更详细的介绍可以去看下php中文网的这篇文章,希望对你有帮助

PHP开发Paypal支付,支付流程和接口实现方案

近期由于要开发公司外贸商城,需要对接Paypal支付。在开发过程中发现有好多坑。文档都是英文文档(主要还是自己英文水平不过关)、网上找的那些翻译过的文档老旧、沙箱环境网站卡的要让人崩溃。整个过程真是让人头大,经过各种翻天覆地的百度、google、论坛终于功夫不负有心人跑通了。下面就结合网上的文档给大家说说如何开发Paypal支付(一个Demo),避免大家在踩坑。

3.开启PDT设置同步回调地址(这步拿到at_token return回调使用)

3.项目根目录下创建return.php文件

4.项目根目录下创建cancel.php文件

目前网上的文档感觉没有一个整体流程详细的介绍,而且有些比较老。本篇文章是汇总整理并加入了一些自己的改造和踩坑分享而已。文介绍了paypal支付的其中一种方式,还有一种SDK的方式,这两种有点小区别但是整体的流程还是一样是。等后续会和大家分享另一种方式。还请各位大佬多多指教。

thinkphp中怎么加入支付宝接口

重新整理接口包文件,这一步应该算是比较关键的(个人认为)

下载下来的接口包文件有很多语言的源码,

我们选择 create_direct_pay_by_user-PHP-UTF-8 这个名称的接口文件。里面包括如下文件:

images文件里是支付宝相关的一些标志的图片,我们暂不管他,lib文件很重要,是整个接口的核心类文件;

alipay.config.php是相关参数的配置文件

alipayapi.php 是支付宝接口入口文件

notify_url.php 是服务器异步通知页面文件;

return_url.php 是页面跳转同步通知文件;

在ThinkPHP的框架文件下,找到Extend 进入,再进入Vendor,在Vendor文件夹下,新建文件夹Alipay,把支付宝作为第三方类库引入。然后,复制支付宝接口文件包中lib文件里的所有文件。一共4个文件,如下:

现在对以上文件进行重命名,

alipay_core.function.php重命名为:Corefunction.php;

alipay_md5.function.php重命名为:Md5function.php;

alipay_notify.class.php重命名为:Notify.php;

alipay_submit.class.php重命名为:Submit.php;

然后,打开Submit.php文件,把以下代码去掉;

require_once("alipay_core.function.php");

require_once("alipay_md5.function.php");

复制代码

同样,打开Notify.php文件,把以下两段代码去掉

require_once("alipay_core.function.php");

require_once("alipay_md5.function.php");

复制代码

为什么要去掉以上两个文件中的这两段代码,因为在项目中调用接口文件的时候,我把所有4个核心文件都通过vendor来进行引入。所以,这不再需要导入。

到此,支付宝接口包相关核心类库的整理基本完成。现在开始在项目中调用;

三、在项目中调用支付宝接口

调用分两步:

1、在配置文件中Conf/Config.php文件中对支付宝相关参数进行配置:

//支付宝配置参数

'alipay_config'=>array(

'partner' =>'20********50', //这里是你在成功申请支付宝接口后获取到的PID;

'key'=>'9t***********ie',//这里是你在成功申请支付宝接口后获取到的Key

'sign_type'=>strtoupper('MD5'),

'input_charset'=> strtolower('utf-8'),

'cacert'=> getcwd().'\\cacert.pem',

'transport'=> 'http',

),

//以上配置项,是从接口包中alipay.config.php 文件中复制过来,进行配置;

'alipay' =>array(

//这里是卖家的支付宝账号,也就是你申请接口时注册的支付宝账号

'seller_email'=>'pay@xxx.com',

//这里是异步通知页面url,提交到项目的Pay控制器的notifyurl方法;

'notify_url'=>'',

//这里是页面跳转通知url,提交到项目的Pay控制器的returnurl方法;

'return_url'=>'',

//支付成功跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参payed(已支付列表)

'successpage'=>'User/myorder?ordtype=payed',

//支付失败跳转到的页面,我这里跳转到项目的User控制器,myorder方法,并传参unpay(未支付列表)

'errorpage'=>'User/myorder?ordtype=unpay',

),

复制代码

2、新建一个PayAction控制器代码如下:

<?php

class PayAction extends Action{

//在类初始化方法中,引入相关类库

public function _initialize() {

vendor('Alipay.Corefunction');

vendor('Alipay.Md5function');

vendor('Alipay.Notify');

vendor('Alipay.Submit');

}

//doalipay方法

/*该方法其实就是将接口文件包下alipayapi.php的内容复制过来

然后进行相关处理

*/

public function doalipay(){

/*********************************************************

把alipayapi.php中复制过来的如下两段代码去掉,

第一段是引入配置项,

第二段是引入submit.class.php这个类。

为什么要去掉??

第一,配置项的内容已经在项目的Config.php文件中进行了配置,我们只需用C函数进行调用即可;

第二,这里调用的submit.class.php类库我们已经在PayAction的_initialize()中已经引入;所以这里不再需要;

*****************************************************/

// require_once("alipay.config.php");

// require_once("lib/alipay_submit.class.php");

//这里我们通过TP的C函数把配置项参数读出,赋给$alipay_config;

$alipay_config=C('alipay_config');

/**************************请求参数**************************/

$payment_type = "1"; //支付类型 //必填,不能修改

$notify_url = C('alipay.notify_url'); //服务器异步通知页面路径

$return_url = C('alipay.return_url'); //页面跳转同步通知页面路径

$seller_email = C('alipay.seller_email');//卖家支付宝帐户必填

$out_trade_no = $_POST['trade_no'];//商户订单号 通过支付页面的表单进行传递,注意要唯一!

$subject = $_POST['ordsubject']; //订单名称 //必填 通过支付页面的表单进行传递

$total_fee = $_POST['ordtotal_fee']; //付款金额 //必填 通过支付页面的表单进行传递

$body = $_POST['ordbody']; //订单描述 通过支付页面的表单进行传递

$show_url = $_POST['ordshow_url']; //商品展示地址 通过支付页面的表单进行传递

$anti_phishing_key = "";//防钓鱼时间戳 //若要使用请调用类文件submit中的query_timestamp函数

$exter_invoke_ip = get_client_ip(); //客户端的IP地址

/************************************************************/

//构造要请求的参数数组,无需改动

$parameter = array(

"service" => "create_direct_pay_by_user",

"partner" => trim($alipay_config['partner']),

"payment_type" => $payment_type,

"notify_url" => $notify_url,

"return_url" => $return_url,

"seller_email" => $seller_email,

"out_trade_no" => $out_trade_no,

"subject" => $subject,

"total_fee" => $total_fee,

"body" => $body,

"show_url" => $show_url,

"anti_phishing_key" => $anti_phishing_key,

"exter_invoke_ip" => $exter_invoke_ip,

"_input_charset" => trim(strtolower($alipay_config['input_charset']))

);

//建立请求

$alipaySubmit = new AlipaySubmit($alipay_config);

$html_text = $alipaySubmit->buildRequestForm($parameter,"post", "确认");

echo $html_text;

}

/******************************

服务器异步通知页面方法

其实这里就是将notify_url.php文件中的代码复制过来进行处理

*******************************/

function notifyurl(){

/*

同理去掉以下两句代码;

*/

//require_once("alipay.config.php");

//require_once("lib/alipay_notify.class.php");

//这里还是通过C函数来读取配置项,赋值给$alipay_config

$alipay_config=C('alipay_config');

//计算得出通知验证结果

$alipayNotify = new AlipayNotify($alipay_config);

$verify_result = $alipayNotify->verifyNotify();

if($verify_result) {

//验证成功

//获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表

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

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

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

$total_fee = $_POST['total_fee']; //交易金额

$notify_id = $_POST['notify_id']; //通知校验ID。

$notify_time = $_POST['notify_time']; //通知的发送时间。格式为yyyy-MM-dd HH:mm:ss。

$buyer_email = $_POST['buyer_email']; //买家支付宝帐号;

$parameter = array(

"out_trade_no" => $out_trade_no, //商户订单编号;

"trade_no" => $trade_no, //支付宝交易号;

"total_fee" => $total_fee, //交易金额;

"trade_status" => $trade_status, //交易状态

"notify_id" => $notify_id, //通知校验ID。

"notify_time" => $notify_time, //通知的发送时间。

"buyer_email" => $buyer_email, //买家支付宝帐号;

);

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

//

}else if ($_POST['trade_status'] == 'TRADE_SUCCESS') { if(!checkorderstatus($out_trade_no)){

orderhandle($parameter);

//进行订单处理,并传送从支付宝返回的参数;

}

}

echo "success"; //请不要修改或删除

}else {

//验证失败

echo "fail";

}

}

/*

页面跳转处理方法;

这里其实就是将return_url.php这个文件中的代码复制过来,进行处理;

*/

function returnurl(){

//头部的处理跟上面两个方法一样,这里不罗嗦了!

$alipay_config=C('alipay_config');

$alipayNotify = new AlipayNotify($alipay_config);//计算得出通知验证结果

$verify_result = $alipayNotify->verifyReturn();

if($verify_result) {

//验证成功

//获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表

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

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

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

$total_fee = $_GET['total_fee']; //交易金额

$notify_id = $_GET['notify_id']; //通知校验ID。

$notify_time = $_GET['notify_time']; //通知的发送时间。

$buyer_email = $_GET['buyer_email']; //买家支付宝帐号;

$parameter = array(

"out_trade_no" => $out_trade_no, //商户订单编号;

"trade_no" => $trade_no, //支付宝交易号;

"total_fee" => $total_fee, //交易金额;

"trade_status" => $trade_status, //交易状态

"notify_id" => $notify_id, //通知校验ID。

"notify_time" => $notify_time, //通知的发送时间。

"buyer_email" => $buyer_email, //买家支付宝帐号

);

if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') {

if(!checkorderstatus($out_trade_no)){

orderhandle($parameter); //进行订单处理,并传送从支付宝返回的参数;

}

$this->redirect(C('alipay.successpage'));//跳转到配置项中配置的支付成功页面;

}else {

echo "trade_status=".$_GET['trade_status'];

$this->redirect(C('alipay.errorpage'));//跳转到配置项中配置的支付失败页面;

}

}else {

//验证失败

//如要调试,请看alipay_notify.php页面的verifyReturn函数

echo "支付失败!";

}

}

}

?>

关于php支付接口配置的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php支付接口配置 php 支付的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did210501
更新时间:2023-05-03   阅读:26次

上一篇: 面试腾讯php面试 腾讯面试题

下一篇:php现在是处在什么状态 php现在是处在什么状态中

相关资讯

最新资料更新

  • 1.php比较运算符价格 php中用于比较字符串的函数
  • 2.phpwebim开发 php web开发实用教程
  • 3.php复杂语法 php基本语法
  • 4.基于PHP日记网站 phpstudy网站日志
  • 5.phpping测速 测试php性能工具
  • 6.php项目任务分配 php任务调度框架
  • 7.phpcurl带证书 php证书查询系统
  • 8.php受不受欢迎 php无法接收post
  • 9.字符编码+php 字符编码转换器
  • 10.免费版仓库管理系统php 仓库管理系统php源码
  • 11.php判断字符串的编码 php 判断字符串是否存在某个字符串
  • 12.PHP没有前景吗 php现在怎么样
  • 13.php下载表格 php下载功能
  • 14.php验证邮箱合理 php发送邮件验证码
  • 15.修改php网页链接 怎么修改php网页
  • 16.php交叉报表 ureport 交叉报表
  • 17.php实现小说目录的方法 php自动生成小说
  • 18.phpword导出 phpspreadsheet导出
  • 19.杭州php前景如何 杭州php培训学校
  • 20.包含phpgetitems的词条

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]