[接口]支付宝接口开发集成支付环境开发总结

关于支付宝的接口集成气死是很简单,目前大概有3种类型,即时到帐、双功能、担保交易,只需要集成一次担保交易,其他的比如即时到帐集成很容易,担保交易的状态有几种,比如:是否支付成功,卖家是否发货,买家确认收获等。而即时到帐只有一种,就是是否已付款!最多还有个退款的功能。一般都没用到。

通过之前做项目:配资平台,有个预付费的功能,用到了支付宝的双功能收款,其实就是提供两种付款方式,即时到帐和担保交易。一般买家谨慎会选择担保。

下面说下具体的集成过程,第一:下载对应的集成接口包,比如即时到帐就下载即时到帐,担保下载担保,非常不建议将即时到帐修改成担保或者反之。案例中我下载的 双功能接口文件,utf8-php接口。

下载来的文件都大同小异,即时到帐和担保的文件也相差不大,反正可以肯定的说,只要配置一次担保支付宝接口,就能配置即时到帐。

我们需要修改的文件有如下:alipay.config.php[配置文件,只是用于修改配置接口开发者id和key]

alipayapi.php[主调文件,将需要发送的post数据交给该文件,然后负责跳转到支付页面]

index.php[demo演示页面,可以不做修改,但是其中传递的参数名陈需要看懂]

notify_url.php 返回数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过post方式接受。

return_url.php 返回数据页面,在其中将返回交易的状态,更具状态我们可以更改数据库订单信息,该文件是通过GET方式。

具体过程:

第一步,修改配置信息:

1	$alipay_config[‘partner‘]       = ‘xxx8511073xxxxxxxx‘;
2
3	//安全检验码,以数字和字母组成的32位字符
4	$alipay_config[‘key‘]           =‘xxxxxxxxnow07oajbflskxxxxxxxxxx‘;

  

第二:拼post数据,一般只需要修改请求参数

01	/**************************请求参数**************************/
02	        //支付类型
03	        $payment_type = "1";
04	        //必填,不能修改
05	        //服务器异步通知页面路径
06	        $notify_url = "http://你的域名/alipay/notify_url.php";
07	        //需http://格式的完整路径,不能加?id=123这类自定义参数
08
09	        //页面跳转同步通知页面路径
10	        $return_url = "http://你的域名/alipay/return_url.php";
11	        //需http://格式的完整路径,不能加?id=123这类自定义参数,不能写成http://localhost/
12
13	        //卖家支付宝帐户
14	        $seller_email = $_POST[‘WIDseller_email‘];//demo[index.php]传过来的
15	        //必填
16
17	        //商户订单号
18	        $out_trade_no = $_POST[‘WIDout_trade_no‘];//传过来的
19	        //商户网站订单系统中唯一订单号,必填
20
21	        //订单名称
22	        $subject = $_POST[‘WIDsubject‘];//同上
23	        //必填
24
25	        //付款金额
26	        $price = $_POST[‘WIDprice‘];//传过来的,是你的表单中填写的值
27	        //必填
28
29	        //商品数量
30	        $quantity = "1";
31	        //必填,建议默认为1,不改变值,把一次交易看成是一次下订单而非购买一件商品
32	        //物流费用
33	        $logistics_fee = "0.00";
34	        //必填,即运费
35	        //物流类型
36	        $logistics_type = "EXPRESS";
37	        //必填,三个值可选:EXPRESS(快递)、POST(平邮)、EMS(EMS)
38	        //物流支付方式
39	        $logistics_payment = "SELLER_PAY";
40	        //必填,两个值可选:SELLER_PAY(卖家承担运费)、BUYER_PAY(买家承担运费)
41	        //订单描述
42
43	        $body = $_POST[‘WIDbody‘];
44	        //商品展示地址
45	        $show_url = $_POST[‘WIDshow_url‘];
46	        //需以http://开头的完整路径,如:http://www.ya-jing.cn
47
48	        //收货人姓名
49	        $receive_name = ‘萤火‘;
50	        //如:张三
51
52	        //收货人地址
53	        $receive_address = $_POST[‘WIDreceive_address‘];
54	        //如:XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
55
56	        //收货人邮编
57	        $receive_zip = $_POST[‘WIDreceive_zip‘];
58	        //如:123456
59
60	        //收货人电话号码
61	        $receive_phone = $_POST[‘WIDreceive_phone‘];
62	        //如:0571-88158090
63
64	        //收货人手机号码
65	        $receive_mobile = $_POST[‘WIDreceive_mobile‘];
66	        //如:13312341234

  

第三:数据构造完成后就可以在页面上付款,测试能不能正确的打开支付页面。如果能打开,这时候就可以进行付款了,但是买家付款的状态我们还无法获知,比如有没有成功付款,卖家是否已经发货等。那么接下来开始做返回状态的业务逻辑处理。

打开return_url.php文件,根据提示修改,做对因的处理。

01	//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
02	    //获取支付宝的通知返回参数,可参考技术文档中页面跳转同步通知参数列表
03
04	    //商户订单号 $out_trade_no = $_GET[‘out_trade_no‘];
05
06	    //支付宝交易号    $trade_no = $_GET[‘trade_no‘];
07
08	    //交易状态
09	    $trade_status = $_GET[‘trade_status‘];
10
11
12	    if($_GET[‘trade_status‘] == ‘WAIT_SELLER_SEND_GOODS‘) {//状态为成功
13	    //处理自己网站的业务逻辑
14	        if(!$order[‘status‘]){//判断本地数据库中的订单是否已经处理
15	            db_update("stx_recharge",array("status"=>1),array("oid"=>$_GET
16
17	[‘out_trade_no‘]));//如果没处理就将状态改成已经处理。
18	            //金钱的增加
19	            $zd = db_line("stx_terminal",array("id"=>$order[‘ztid‘]));
20	            db_update("stx_terminal",array("money"=>$zd[‘money‘]+$order
21
22	[‘money‘]),array("id"=>$order[‘ztid‘]));//增加余额到该用户的账户上。
23	        }
24	    }
25	    else if($_GET[‘trade_status‘] == ‘TRADE_FINISHED‘) {
26	        //判断该笔订单是否在商户网站中已经做过处理
27	            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统
28
29	中查到该笔订单的详细,并执行商户的业务程序
30	            //如果有做过处理,不执行商户的业务程序
31	    }
32	    else {
33	      echo "trade_status=".$_GET[‘trade_status‘];
34	    }
35
36	    echo "验证成功<br />";
37	    echo "trade_no=".$trade_no;
     notify_url.php也是一样,根据状态来编写对应的代码!notify_url.php文件中的状态要多一些。

01	//——请根据您的业务逻辑来编写程序(以下代码仅作参考)——
02
03	    //获取支付宝的通知返回参数,可参考技术文档中服务器异步通知参数列表
04
05	    //商户订单号
06
07	    $out_trade_no = $_POST[‘out_trade_no‘];
08
09	    //支付宝交易号
10
11	    $trade_no = $_POST[‘trade_no‘];
12
13	    //交易状态
14	    $trade_status = $_POST[‘trade_status‘];
15
16
17	    if($_POST[‘trade_status‘] == ‘WAIT_BUYER_PAY‘) {
18	    //该判断表示买家已在支付宝交易管理中产生了交易记录,但没有付款
19
20	        //判断该笔订单是否在商户网站中已经做过处理
21	            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
22	            //如果有做过处理,不执行商户的业务程序
23
24	        echo "success";    //请不要修改或删除
25
26	        //调试用,写文本函数记录程序运行情况是否正常
27	        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
28	    }
29	    else if($_POST[‘trade_status‘] == ‘WAIT_SELLER_SEND_GOODS‘) {
30	    //该判断表示买家已在支付宝交易管理中产生了交易记录且付款成功,但卖家没有发货
31
32	        if(!$order[‘status‘]){
33	            db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST[‘out_trade_no‘]));
34	            //金钱的增加
35	            $zd = db_line("stx_terminal",array("id"=>$order[‘ztid‘]));
36	            db_update("stx_terminal",array("money"=>$zd[‘money‘]+$order[‘money‘]),array("id"=>$order[‘ztid‘]));
37	        }
38
39	        echo "success";    //请不要修改或删除
40
41	        //调试用,写文本函数记录程序运行情况是否正常
42	        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
43	    }
44	    else if($_POST[‘trade_status‘] ==‘WAIT_BUYER_CONFIRM_GOODS‘) {
45	    //该判断表示卖家已经发了货,但买家还没有做确认收货的操作
46
47	        if(!$order[‘status‘]){
48	            db_update("stx_recharge",array("status"=>1),array("oid"=>$_POST[‘out_trade_no‘]));
49	            //金钱的增加
50	            $zd = db_line("stx_terminal",array("id"=>$order[‘ztid‘]));
51	            db_update("stx_terminal",array("money"=>$zd[‘money‘]+$order[‘money‘]),array("id"=>$order[‘ztid‘]));
52	        }
53
54	        echo "success";    //请不要修改或删除
55
56	        //调试用,写文本函数记录程序运行情况是否正常
57	        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
58	    }
59	    else if($_POST[‘trade_status‘] == ‘TRADE_FINISHED‘) {
60	    //该判断表示买家已经确认收货,这笔交易完成
61
62	        //判断该笔订单是否在商户网站中已经做过处理
63	            //如果没有做过处理,根据订单号(out_trade_no)在商户网站的订单系统中查到该笔订单的详细,并执行商户的业务程序
64	            //如果有做过处理,不执行商户的业务程序
65
66	        echo "success";    //请不要修改或删除
67
68	        //调试用,写文本函数记录程序运行情况是否正常
69	        //logResult("这里写入想要调试的代码变量值,或其他运行的结果记录");
70	    }

  

由于我基本上没有用到后续的发货处理,所以在该状态下未做处理,如果您的网站是购物网站秒就需要做对应的处理,比如更新状态值为已发货,或者未付款、已确认等。方便看到交易流程。同时在已付款的订单中会产生支付宝的订单id,可以同时记录在自己的订单中。

接下来就是接口的调试,每次可以支付1毛钱来进行测试。

时间: 2024-08-05 12:06:50

[接口]支付宝接口开发集成支付环境开发总结的相关文章

[5] 微信公众号开发 - 微信支付功能开发(网页JSAPI调用)

1.微信支付的流程 如下三张手机截图,我们在微信网页端看到的支付,表面上看到的是 "点击支付按钮 - 弹出支付框 - 支付成功后出现提示页面",实际上的核心处理过程是: 点击支付按钮时,执行一个Ajax到后台 后台通过前台的部分信息(如商品名额,金额等),将其组装成符合微信要求格式的xml,然后调用微信的"统一下单接口" 调用成功后微信会返回一个组装好的xml,我们提取之中的消息(预支付id也在其中)以JSON形式返回给前台 前台将该JSON传参给微信内置JS的方法

支付宝接口开发-手机网站支付-沙箱测试

前面一段时间,因为公司业务需求,需要使用支付宝的手机网站支付接口,因为自己也是第一次使用这个,中间走了不少弯路,现在总结一下,希望对遇到同样问题的朋友有帮助. 第一步:登录蚂蚁金服开放平台蚂蚁金服开放平台连接,在这里你可以使用自己的支付宝进行登录,也可以使用公司的企业账号登录(建议公司的企业账号登录) 登录之后页面如下: 第二步:进入开发者中心,在上面图片上可以看到菜单 在这里你可以选择创建应用,也可以直接使用沙箱环境测试,沙箱环境和自己创建应用的效果是差不多的[应用测创建,只需要跟着网页提示进

在线支付接口之PHP支付宝接口开发简单介绍

php100:92:在线支付接口之PHP支付宝接口开发 支付接口一般是第三方提供的代收款.付款的平台,可以通过支付接口帮助企业或个人利用一切可以使用的支付方式.常见支付平台:支付宝.快钱.云网支付.财付通. 支付宝页面:订单页面.状态页面.返回页面.---->支付宝平台-->收款人账户 1.首先到支付宝申请账户:2.商家服务-->网站继承支付宝-->选择申请接口类型-->等待合同生效3.生效后下载开发集成文档. 在线申请特约商家(申请实时到账)合作者身份id:这是不会变的.交

支付宝接口开发提示错误代码 invalid-signature 错误原因: 无效签名

今天做支付宝接口开发,参照官方的实例代码,但是一直提示报错:错误代码 invalid-signature 错误原因: 无效签名 而官方的例子却不报错,经过反复的测试发现,是因为官方代码里参数是通过POST赋值的 $out_trade_no = trim($_POST['WIDout_trade_no']);//商户订单号,商户网站订单系统中唯一订单号,必填 $subject = trim($_POST['WIDsubject']);//订单名称,必填 $total_amount = trim($

Android集成支付宝接口 实现在线支付

手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能. 人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验.谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍一下android手机集成支付宝功能. 1.下载官方架包和说明文档其实官方已经提供了安装指南,下载地址:https:/

微信支付v3开发(6) 收货地址共享接口

请看新版教程  微信支付开发(7) 收货地址共享接口V2 本文介绍微信支付下的收货地址共享接口的开发过程. 一. 简单介绍 微信收货地址共享,是指用户在微信浏览器内打开网页,填写过地址后,兴许能够免填写支持高速选择.也可添加和编辑. 此地址为用户属性.可在各商户的网页中共享使用.支持原生控件填写地址.地址数据会传递到商户. 地址共享是基于微信JavaScript API 实现.仅仅能在微信内置浏览器中使用,其它浏览器调用无效. 同一时候,须要微信5.0 版本号才干支持,建议通过user agen

PHP九大接口视频教程( 支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套)

PHP九大接口视频教程(  支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 PHP九大接口视频教程(  支付宝,QQ,短信接口,微信接口开发, 支付宝即时到账接口开发三级分销全套) 需要的联系我:QQ: 1844912514 原文地址:https://www.cnblogs.com/lxwphp/p/9426625.html

支付宝接口开发总结

1.需要向客户要的东西:.PID.Key.企业支付宝的账号 2.前期准备:注册好企业账号,然后申请支付套餐:https://b.alipay.com/order/productSet.htm 建议申请[网银支付]+[即时到账收款](可以不申请).里面的方案按各自的需求选择“套餐“类型去申请. 3.申请好套餐后正常2-5天会有申请状态,成功后进入[我的商家服务]:地址:https://b.alipay.com/order/serviceIndex.htm,点击左上角的[查询PID.Key]然后这就

Thinkphp集成手机支付宝接口功能

最近做微商城,需要实现手机wap支付功能,选择的是支付宝的接口支付功能.这里是我用的是支付宝“手机网站支付”产品(注:该产品要支付宝企业账号才能申请),具体步骤如下: 一.下载支付宝接口包 https://b.alipay.com/order/productDetail.htm?productId=2013080604609688 二.重新整理接口包文件 下载下来的接口包文件有很多语言的源码 注:openssl用来生成公私钥,RSA签名才使用.这里我们用的MD5签名,所有该文件用不到. 我们选择