PHP 接入支付宝即时到账功能

来源:本网整理

支付接口代码里都有用注释代码注释的,你检查看看,有一个地址就是返回你的网站的指定页面的,你还可以调用参数。

s">

PHP 接入支付宝即时到账功能

作者:myxp 字体:[增加 减小] 类型:转载 时间:2016-09-18 我要评论 这篇文章主要介绍了PHP 接入支付宝即时到账功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下 ">

首先请到支付宝那边申请一个及时到账的接口账户,需要提交相关材料申请。然后根据即时到账的API文档进行接入。API文档提供了各种语言版本的demo,我这里是下的php版demo,然后再进行相关修改操作。你也可以将demo版本的代码重新整合,我这里暂时为了走通充值及时到账流程,就不进行代码重构了。

做过啊,你现在是哪里有问题要解决,还是要找人做接口对接,账号已经申请好了么,申请好了,可以找额提供代做或指导

API文档:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.eZb8FX&treeId=108&articleId=103950&docType=1

一般网站希望使用 即时到帐 的接口,但是现在已经不对个人提供了,你只能使用担保付款的方式,其实你去淘宝论坛看看去吧,对应的详细支付接口API以及样例还有回调过程都想详细的例子,而且论坛有官方人员提供技术支持的。

前台表单提交

下载接口代码,之后根据里面的代码和技术文档还有说明来做。 如果你根本就不会编程,那么登陆支付宝的网站,在商家服务 合同列表 里的 申请集成,去提交申请吧。前提是你要已经是签约商户。 下载接口资料的地方,由于不能贴地址,所以文字告诉你

<form action="/pay/alipayapi.php" class="tm-panel-small uk-form uk-form-stacked" method="post" target="_blank"> <div class="element" style="margin-top:60px;"> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">订单序号:</label> <input class="uk-form-width-large" type="text" name="WIDout_trade_no" id="out_trade_no" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品名称:</label> <input class="uk-form-width-large" type="text" name="WIDsubject" value="<?php echo trim($_GET['orderid']);?>" > <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">付款金额:</label> <input class="uk-form-width-large" type="text" name="WIDtotal_fee" value="<?php echo trim($_GET['amt']);?>"> <br> </div> </div> <div class="uk-form-row"> <div class="uk-form-controls"> <label for="form-username" class="uk-form-label" style="display:inline-block;padding: 0 10px;vertical-align: middle;margin-left:-20px;">商品描述:</label> <input class="uk-form-width-large" type="text" name="WIDbody" value="订单测试支付"> <br> </div> </div> <input type="hidden" name="uid" value="<?php echo $_GET['uid'];?>"> <input type="hidden" name="codes" value="<?php echo $_GET['code'];?>"> <input type="hidden" name="tags" value="<?php echo $_GET['tag'] ?>"> <div class="uk-form-row"> <input class="uk-button uk-button-primary uk-button-large uk-width-1-1" type="submit" class="alisubmit" value ="确认支付"> </div> </div> </form>

支付接口代码里都有用注释代码注释的,有一个地址就是返回你的网站的指定页面的,你还可以调用参数。 PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学

设置alipay.config.php配置文件,主要配置一下几个参数

隔代教育做不好,很容易产生问题,对孩子带来负面的影响。接下来说说老人容易带坏孩子的习惯都有哪些。1老人喜欢给孩子喂饭,造成孩子吃饭兴趣降低,总是被老人哄着骗着把饭吃完。等到父母和孩子一起吃饭时,左催右催也不吃饭,非等到有人喂才吃饭,而且独立能力非常差。到了幼儿园不适应,容易生病。2老人担心孩子做不好,从不让帮忙做些家务或者一些力所能及的事,孩子没有热爱劳动的意识,动手能力也很差。长期下来,习惯凡事都依赖别人做,成了名副其实的“饭来张口,衣来伸手”的小皇帝。3老人总是见不得孩子哭,隔辈亲嘛,所以孩子一哭,就放弃任何原则,来满足孩子的要求。时间一长,孩子就抓住老人这种心理,为了满足自己的要求就会以

$alipay_config['partner'] 设置签约账号ID

我来回答你这个问题。首先,我是二本毕业,前提在此,喷子勿喷!从学费上讲,一本二本学费每年5000左右,加住宿1200左右,生活费自理。三本学费12000-18000不等,个别上20000,住宿费各个学校不一样,生活费自理。从学历上讲,一本二本三本都是大学本科,但是一本二本毕业证上校长签名是该大学校长,三本就是某学院院长盖章,说白了,就是民办出钱挂在某大学上,毕业其实某大学不认可。从就业上讲,我这里说的是普遍现象,不排除有个别例外,喷子勿喷。一本大学就业公司条件,名气,待遇都是最好的,二本次之,三本还要差一点。拿我来说,当时华为公司只在一本名校开展校招,绝对不会到二本三本学校招聘,差一点的公司一

$alipay_config['key'] 设置MD5校验key

我是两个孩子的宝妈,有老大时爸爸在家庭中给了我们提供了安逸的生活环境,那会儿爸爸更像个孩子,孩子更像个宠物,在育儿中和孩子直接的链接也就能换个尿布吧,这个问题真好,在回答的时候我发现那会正因为有爸爸的存在,才能让我心无旁骛的带孩子,不过作为女人更希望老公给到自己的是言语和情感上的陪伴。有了老二,爸爸的角色更是重要,他已经可以带老大出去玩了,而且他们玩的非常投入,对孩子没有控制和期待,孩子在爸爸面前撒娇和在我面前是不一样的。女儿真的是来个我争宠的

$alipay_config['notify_url'] 设置异步回调地址

既然限定了15万的价格,那就找一下性能最优的吧!15万级别的A级车,以速腾和思域最为值得推荐,这二者实力相当,却又各有特色!做为长期霸占销量榜的一款车型,速腾的功力自然不容小视。其深得大众的中庸之道,各方面都非常均衡,没有什么明显的短板,尤其在一些大众粉的眼里,其扎实的底盘体验和精准的操控性更是经常被人津津乐道。而思域呢,因得了本田的黑科技,思域的1.5T发动机在同级别内无对手,本田粉们有句话叫“买发动机送车”!也就是冲着这一点。另外思域的变速箱和底盘表现也很优异,其余的你还奢望什么呢?目前普遍提车困难,甚至加价,由此可见一斑。综合来看,速腾是一个全科生,其各项成绩均优秀,而思域就是特长生了,

$alipay_config['return_url'] 设置回调返回地址

$alipay_config['transport'] 设置协议类型,默认为http

$alipay_config['partner'] = 'xxxxxxxxxxxx'; //收款支付宝账号,以2088开头由16位纯数字组成的字符串,一般情况下收款账号就是签约账号 $alipay_config['seller_id'] = $alipay_config['partner']; // MD5密钥,安全检验码,由数字和字母组成的32位字符串,查看地址:https://b.alipay.com/order/pidAndKey.htm $alipay_config['key'] = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 $alipay_config['notify_url'] = "http://xx.xx.xx.xx/pay/notify_url.php"; // 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 $alipay_config['return_url'] = "http://xx.xx.xx.xx/pay/return_url.php"; //签名方式 $alipay_config['sign_type'] = strtoupper('MD5'); //字符编码格式 目前支持 gbk 或 utf-8 $alipay_config['input_charset']= strtolower('utf-8'); //ca证书路径地址,用于curl中ssl校验 //请保证cacert.pem文件在当前文件夹目录中 $alipay_config['cacert'] = getcwd().'\\cacert.pem'; //访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http $alipay_config['transport'] = 'http'; // 支付类型 ,无需修改 $alipay_config['payment_type'] = "1"; // 产品类型,无需修改 $alipay_config['service'] = "create_direct_pay_by_user";

交易处理完成后会发送订单信息及交易状态到你指定好的回传return_url.php中,你可以通过回传给你的订单状态判断交易是否成功,成功则进入下一步逻辑(你自己的订单处理逻辑),否则返回失败。

<?php /* * * 功能:支付宝页面跳转同步通知页面 * 版本:3.3 * 日期:2012-07-23 * 说明: * 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。 * 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。 *************************页面功能说明************************* * 该页面可在本机电脑测试 * 可放入HTML等美化页面的代码、商户业务逻辑程序代码 * 该页面可以使用PHP开发工具调试,也可以使用写文本函数logResult,该函数已被默认关闭,见alipay_notify_class.php中的函数verifyReturn require_once("alipay.config.php"); require_once("lib/alipay_notify.class.php"); ?> <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <?php //计算得出通知验证结果 $alipayNotify = new AlipayNotify($alipay_config); $verify_result = $alipayNotify->verifyReturn(); if($verify_result) {//验证成功 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //请在这里加上商户的业务逻辑程序代码 //——请根据您的业务逻辑来编写程序(以下代码仅作参考)—— //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表 //商户订单号^M $out_trade_no = $_GET['out_trade_no']; //支付宝交易号^M $trade_no = $_GET['trade_no']; //交易状态 $trade_status = $_GET['trade_status']; $total_fee = $_GET['total_fee']; //获取用户返回数据 $user_info = $_GET['extra_common_param']; $user_arr = explode('.',$user_info); $uid = $user_arr[0]; $code = $user_arr[1]; $tags = $user_arr[2]; if($_GET['trade_status'] == 'TRADE_FINISHED' || $_GET['trade_status'] == 'TRADE_SUCCESS') { $types = "alipay"; $user_url = "/user_obj/do_orderinfo.php"; die("<script>;window.location='{$user_url}?uid={$uid}&code={$code}&tags={$tags}&payAmount={$total_fee}&order={$out_trade_no}&types={$types}';</script>"); //判断该笔订单是否在商户网站中已经做过处理 //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序 //如果有做过处理,不执行商户的业务程序 } else { echo "trade_status=".$_GET['trade_status']; } var_dump($verify_result); echo "验证成功<br />"; //——请根据您的业务逻辑来编写程序(以上代码仅作参考)—— ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } else { //验证失败 //如要调试,请看alipay_notify.php页面的verifyReturn函数 echo "验证失败"; } ?> <title>支付宝即时到账交易接口</title> </head> <body> </body> </html>

以上所述是小编给大家介绍的PHP 接入支付宝即时到账功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对突袭网网站的支持!

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

下载下来的PHP支付宝即时到账接口DEMO怎么用?怎样与自己写的代码链接起来?

支付宝官方有视频教程的,如果需要返回数据,那里可能要写点代码,如果不需要,就简单配置下,我也没整过,但是那个配置也简单,就是配置个key,连接啥的,如果觉的有用,就采纳吧

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

准备工作

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

服务器端使用框架:TP5

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

下载官方 SDK (PHP版本资源)——当前SDK版本:106 生成时间:2017-07-25 11:46:10

将SDK原码放置在TP5的vendor目录下的alipay文件夹(可根据实际使用框架技术进行实际调整)。

支付接口调用原理

1、APP支付系统架构

APP支付系统架构图

2、数据校验原理

数据校验原理

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

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

3、系统交互流程

系统交互流程图

4、支付场景具体实现流程(最详细图解)

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

支付场景具体实现流程

商家APP在创建订单并且唤起支付宝APP支付,流程如上图所示,根据第2.2,3步返回的支付结果,确定支付状态,并且做相应的异常处理(必要时关闭订单)

代码实现

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

步骤2:商户服务器端接收数据,然后对数据进行签名,返回请求参数到商户APP端。

官方接口文档:https://docs.open.alipay.com/204/105465/

——代码如下:

//vendor();为TP5框架的方法,作用:导入第三方框架类库

vendor('alipay.aop.AopClient');

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

//实例化支付接口

$aop = new \AopClient();

$aop->gatewayUrl = "https://openapi.alipay.com/gateway.do"; //支付宝网关

$aop->appId = “应用ID,填写你的APPID”;

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

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

$aop->apiVersion = '1.0';

$aop->signType = "签名方式,如 RSA2 ";

$aop->postCharset = 'UTF-8';

$aop->format = "json";

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

$appRequest = new \AlipayTradeAppPayRequest();

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

$bizcontent = json_encode([

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

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

'timeout_express' => '30m',

'out_trade_no' => ‘20170125test01’, //商户网站唯一订单号

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

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

]);

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

$appRequest->setBizContent($bizcontent);

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

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

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

echo htmlspecialchars($response);//就是orderString 可以直接给客户端请求,无需再做处理。

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

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

将请求参数组装分下列3步,以最后第三步获取到的请求为准。

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

app_id=*052600090779&biz_content={"timeout_express":"30m","product_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是测试数据","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0

2)再对原始字符串进行签名

app_id=*052600090779&biz_content={"timeout_express":"30m","product_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是测试数据","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http://domain.merchant.com/payment_notify&sign_type=RSA2×tamp=2016-08-25 20:26:31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj+y48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp/M45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g=

3)最后对请求字符串的所有一级value(biz_content作为一个value)进行encode,编码格式按请求串中的charset为准,没传charset按UTF-8处理,获得最终的请求字符串:

app_id=*052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.01%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%22IQJZSRC1YMQB5HU%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay¬ify_url=http%3A%2F%2Fdomain.merchant.com%2Fpayment_notify&sign_type=RSA2×tamp=2016-08-25%2020%3A26%3A31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj%2By48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp%2FM45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g%3D

步骤3:商户APP接收从商户服务器端返回的请求参数,然后调起支付宝支付面板。

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

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

步骤4:服务端异步通知处理机制(支付宝主动发起通知,该方式才会被启用)

官方接口文档:https://docs.open.alipay.com/204/105301/

注意点:

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

2)支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:$_POST[‘out_trade_no’];

3)程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);

4)当商户收到服务器异步通知并打印出success时,服务器异步通知参数notify_id才会失效。

——代码如下:

$aop = new AopClient;

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

$flag = $aop->rsaCheckV1($_POST, NULL, "RSA2"); //验证签名

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是否为商户系统中创建的订单号;

//2、判断total_amount是否确实为该订单的实际金额(即商户订单创建时的金额);

//3、校验通知中的seller_id(或者seller_email) 是否为out_trade_no这笔单据的对应的操作方(有的时候,一个商户可能有多个seller_id/seller_email)。

//上述1、2、3有任何一个验证不通过,则表明本次通知是异常通知,务必忽略。在上述验证通过后商户必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。

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

}

exit('fail');

}

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

步骤5:当商户APP端接收到支付宝的同步返回结果为成功时,商户APP端再请求商户服务器端API,判断订单最终支付结果,并做出最终响应。

php支付宝详细支付流程

https://b.alipay.com/order/techService.htm

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

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

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

php程序实现用支付宝及时支付功能据说要用到支付宝的接口,听说还要注册企业帐号,然后才能调用,具体

注册企业版支付宝

然后进行支付宝实名认证

然后在支付宝商家服务中选择你需要的支付接口进行申请

申请的时候需要一些企业相关的东西, 比如企业营业执照等

其实注册的时候或者实名认证的时候就需要用到这些资料!

如果你没有这些资料, 那就放弃支付宝接口吧!

使用php支付宝接口做的购买产品,网页版跳转到付款页支付成功就跳回了,但在手机浏览器中就不自动跳回。

  1. 先确定下手机浏览器可否访问你制定的页面?如果不能就是制定页面的问题;

  2. 确认下手机网站支付是否应该跳转到网页版支付宝而不是支付宝APP;这个好像支付宝的网站支付对应网页支付宝平台

  • 本文相关:
  • 手把手编写PHP框架 深入了解MVC运行流程
  • PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
  • php微信公众账号开发之五个坑(二)
  • iOS10推送通知开发教程
  • php支付宝在线支付接口开发教程
  • php5.2的curl-bug 服务器被php进程卡死问题排查
  • PHP简单创建压缩图的方法
  • php处理单文件、多文件上传代码分享
  • PHP中explode函数和split函数的区别小结
  • PHP页面间传递值和保持值的方法
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved