首页 开发编程 正文

php怎么实现第三方支付(php实现支付功能)

2、PHP如何调用支付接口3、php后台怎么把多种支付方式集成在一起可以先择性安装4、PHP程序怎么使用支付宝支付求大神给详细思路最好简单易懂是新手如何用PHP实现微信支付?2.根据订单信息和支付相关的账号生成sign。...

本篇文章给大家谈谈php怎么实现第三方支付,以及php实现支付功能对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录:

如何用PHP实现微信支付?

以PHP语言为例,对微信支付的开发流程进行一下说明:

1.获取订单信息。

2.根据订单信息和支付相关的账号生成sign,并且生成支付参数。

3.将支付参数信息POST到微信服务器,获取返回信息。

4.根据返回信息生成相应的支付代码(微信内部)或是支付二维码(非微信内),完成支付。

PHP如何调用支付接口

支付接口都要配合第三方支付系统来做 比如 微信 支付宝 连连支付等第三方支付 具体的对接方式在第三方支付系统官方网站上都会有接口文档或者demo示例 你可以根据文档或者demo来开发自己的接口

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

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

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

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

2、用户进行支付后,支付宝后台通知系统处理;

3、支付宝后台通知完成后,支付宝前台跳转到系统返回地址;

支付宝PHP类

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

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

我把这2个类,集中到一个文件alipay.class.inc中,点击这里查看并下载PHP支付宝类源码。

下面主要主要讲解通过支付宝的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'];

//合作身份者ID,以2088开头的16位纯数字

$partner = ’20887015**9*7**’;

//安全检验码,以数字和字母组成的32位字符

$security_code = ‘gc2qxh4**ab***3jp8*****2ptxewks4′;

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

$seller_email = ‘seller@alipay.com’;

$_input_charset = "UTF-8";

$sign_type = "MD5"; //签名方式

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

$parameter = array(

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

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

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

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

"_input_charset" = ‘UTF-8′, //字符集,默认为GBK

"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() {

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

//合作身份者ID,以2088开头的16位纯数字

$partner = ’20887015**9*7**’;

//安全检验码,以数字和字母组成的32位字符

$security_code = ‘gc2qxh4**ab***3jp8*****2ptxewks4′;

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

$seller_email = ‘seller@alipay.com’;

$sign_type = "MD5";

$_input_charset = ‘UTF-8′;

$transport = ‘https’;

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

$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";

}

}

else {

echo "fail";

}

}

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

function alipay_return() {

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

//合作身份者ID,以2088开头的16位纯数字

$partner = ’20887015**9*7**’;

//安全检验码,以数字和字母组成的32位字符

$security_code = ‘gc2qxh4**ab***3jp8*****2ptxewks4′;

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

$seller_email = ‘seller@alipay.com’;

$sign_type = "MD5";

$_input_charset = ‘UTF-8′;

$transport = ‘https’;

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

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

$verify_result = $alipay-return_verify();

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

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

$txn_id = explode(‘-’, $order_id);

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

$sid = $txn_id[1];

//认证合格

if($verify_result) {

$output = ‘h2恭喜您,学员ID’.$sid.’充值’.$total_fee.’元成功!/h2’;

$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;

}

else {

$output = ‘h2你的订单支付过程出现故障!/h2’;

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

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

return $output;

}

}

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

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

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

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

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

PHP程序怎么使用支付宝支付 求大神给详细思路 最好简单易懂 是新手

1)打开上面的网页,从页面下方的7中支付方式中选择你需要的方式并点击进去,

2)点击demo下载选择对应你需求的demo

3)把demo代码引入到你的php项目中,lib里的内容不需要你做任何更改,阅读readme说明文档,在吧除lib外的php文件都看一遍,里面每个参数的作用都说明的很清楚,文件里的index.php就是你要用curl去模拟支付请求的路径,当然你配置完成后也可以打开index.php去完成一次支付

关于php怎么实现第三方支付和php实现支付功能的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文转载自互联网,如有侵权,联系删除