【实例简介】

【实例截图】

【核心代码】

/* *

* 类名:AlipaySubmit

* 功能:支付宝各接口请求提交类

* 详细:构造支付宝各接口表单HTML文本,获取远程HTTP数据

* 版本:3.3

* 日期:2012-07-23

* 说明:

* 以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。

* 该代码仅供学习和研究支付宝接口使用,只是提供一个参考。

*/

//require_once("Corefunction.php");

//require_once("alipay_md5.function.php");

class AlipaySubmit {

var $alipay_config;

/**

*支付宝网关地址(新)

*/

var $alipay_gateway_new = 'https://mapi.alipay.com/gateway.do?';

function __construct($alipay_config){

$this->alipay_config = $alipay_config;

}

function AlipaySubmit($alipay_config) {

$this->__construct($alipay_config);

}

/**

* 生成签名结果

* @param $para_sort 已排序要签名的数组

* return 签名结果字符串

*/

function buildRequestMysign($para_sort) {

//把数组所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串

$prestr = createLinkstring($para_sort);

$mysign = "";

switch (strtoupper(trim($this->alipay_config['sign_type']))) {

case "MD5" :

$mysign = md5Sign($prestr, $this->alipay_config['key']);

break;

default :

$mysign = "";

}

return $mysign;

}

/**

* 生成要请求给支付宝的参数数组

* @param $para_temp 请求前的参数数组

* @return 要请求的参数数组

*/

function buildRequestPara($para_temp) {

//除去待签名参数数组中的空值和签名参数

$para_filter = paraFilter($para_temp);

//对待签名参数数组排序

$para_sort = argSort($para_filter);

//生成签名结果

$mysign = $this->buildRequestMysign($para_sort);

//签名结果与签名方式加入请求提交参数组中

$para_sort['sign'] = $mysign;

$para_sort['sign_type'] = strtoupper(trim($this->alipay_config['sign_type']));

return $para_sort;

}

/**

* 生成要请求给支付宝的参数数组

* @param $para_temp 请求前的参数数组

* @return 要请求的参数数组字符串

*/

function buildRequestParaToString($para_temp) {

//待请求参数数组

$para = $this->buildRequestPara($para_temp);

//把参数组中所有元素,按照“参数=参数值”的模式用“&”字符拼接成字符串,并对字符串做urlencode编码

$request_data = createLinkstringUrlencode($para);

return $request_data;

}

/**

* 建立请求,以表单HTML形式构造(默认)

* @param $para_temp 请求参数数组

* @param $method 提交方式。两个值可选:post、get

* @param $button_name 确认按钮显示文字

* @return 提交表单HTML文本

*/

function buildRequestForm($para_temp, $method, $button_name) {

//待请求参数数组

$para = $this->buildRequestPara($para_temp);

$sHtml = "

";

while (list ($key, $val) = each ($para)) {

$sHtml.= "";

}

//submit按钮控件请不要含有name属性

$sHtml = $sHtml."

正在向支付宝提交数据...";

$sHtml = $sHtml."";

return $sHtml;

}

/**

* 建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果

* @param $para_temp 请求参数数组

* @return 支付宝处理结果

*/

function buildRequestHttp($para_temp) {

$sResult = '';

//待请求参数数组字符串

$request_data = $this->buildRequestPara($para_temp);

//远程获取数据

$sResult = getHttpResponsePOST($this->alipay_gateway_new, $this->alipay_config['cacert'],$request_data,trim(strtolower($this->alipay_config['input_charset'])));

return $sResult;

}

/**

* 建立请求,以模拟远程HTTP的POST请求方式构造并获取支付宝的处理结果,带文件上传功能

* @param $para_temp 请求参数数组

* @param $file_para_name 文件类型的参数名

* @param $file_name 文件完整绝对路径

* @return 支付宝返回处理结果

*/

function buildRequestHttpInFile($para_temp, $file_para_name, $file_name) {

//待请求参数数组

$para = $this->buildRequestPara($para_temp);

$para[$file_para_name] = "@".$file_name;

//远程获取数据

$sResult = getHttpResponsePOST($this->alipay_gateway_new, $this->alipay_config['cacert'],$para,trim(strtolower($this->alipay_config['input_charset'])));

return $sResult;

}

/**

* 用于防钓鱼,调用接口query_timestamp来获取时间戳的处理函数

* 注意:该功能PHP5环境及以上支持,因此必须服务器、本地电脑中装有支持DOMDocument、SSL的PHP配置环境。建议本地调试时使用PHP开发软件

* return 时间戳字符串

*/

function query_timestamp() {

$url = $this->alipay_gateway_new."service=query_timestamp&partner=".trim(strtolower($this->alipay_config['partner']));

$encrypt_key = "";

$doc = new DOMDocument();

$doc->load($url);

$itemEncrypt_key = $doc->getElementsByTagName( "encrypt_key" );

$encrypt_key = $itemEncrypt_key->item(0)->nodeValue;

return $encrypt_key;

}

}

?>

php支付宝提现demo,php 支付宝 支付Demo模板相关推荐

  1. idea支付宝沙箱环境模拟电脑网站支付demo

    1.idea导入demo 支付宝电脑网站支付Demo:https://opendocs.alipay.com/open/270/106291/ 1.导入idea项目 2.选择下载好的项目,选择Ecli ...

  2. 支付宝提现收费,移动支付大战正式落幕

    在今年上半年微信宣布提现不再免费之后,支付宝曾在微博表示提现不收费,不过这种"福利"并未坚持多久.今天支付宝宣布提现将收取0.1%的手续费,每个用户终身拥有2万元免费提现额度.不过 ...

  3. 银联支付(一)申请测试环境,并运行测试demo(在线网关支付)

    1.注册账号 点击进入银联支付开放平台地址 注册账号 选择普通用户登录账号 登录后点击前往商户测试中心 进入后产品列表中选择在线网关支付,然后要点击操作中的集成测试申请支付权限,10分钟后生效(这里如 ...

  4. 基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付

    ​ 基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付 今天接口申请下来,下载了官方demo对着调试了一天,终于实现想要的功能,先看图 选择支付宝支付 跳出二维码弹窗 手机支付宝进 ...

  5. pc二维码支付demo(支付宝/微信)

    一.导读 当我第一次对接的时候还是遇到了不少的问题,也找了开源的支付demo,但是网上的开源支付demo感觉不够简单显而易见,我刚好自己对接过,相关支付,只保留了最简单的支付功能和回调通知,有完整的项 ...

  6. 4 支付宝手机网站支付demo讲解

    目录 1 引言 2 业务流程 3 用户下单 4 商户系统处理订单信息 5 支付宝向用户展示支付信息 6 用户付款 7 同步通知与异步通知 1 引言 前面三小节我们已经学过如何使用支付宝手机网站支付的功 ...

  7. java支付宝支付Demo

    支付宝的官方demo 下载之后打开AilpayConfig package com.alipay.config; import java.io.FileWriter; import java.io.I ...

  8. Idea运行支付宝网站支付demo踩坑解决及其测试注意事项

    一.前言 在一些商城网上中,必不可少的是支付,支付宝和微信比较常见,最近小编也是在研究这一块,看看支付宝怎么进行支付的,支付宝给我们提供了demo和沙箱测试.减少我们的申请的麻烦,公钥和秘钥也比之前方 ...

  9. 支付宝网站支付demo运行教程

    一.前言 在一些商城网上中,必不可少的是支付,支付宝和微信比较常见,最近小编也是在研究这一块,看看支付宝怎么进行支付的,支付宝给我们提供了demo和沙箱测试.减少我们的申请的麻烦,公钥和秘钥也比之前方 ...

  10. Android App支付:支付宝SDK接入详细指南(附官方支付demo)

    Android App支付:支付宝SDK接入详细指南(附官方支付demo) 前言 一家移动互联网公司,说到底,要盈利总是需要付费用户的,自己开发支付系统对于资源有限的公司来说显然不太明智,国内已经有多 ...

最新文章

  1. 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述
  2. C语言深度剖析书籍学习记录 第七章 文件结构
  3. LeetCode 1506. Find Root of N-Ary Tree(异或)
  4. 在 windows 下使用 Xming+Putty 显示 Linux 下软件图形界面
  5. 数据结构与算法——常用数据结构及其Java实现
  6. UP及按照UP进行软件开发的流程
  7. mybatis 原理_Mybatis大揭秘:plugin插件设计原理
  8. [Java] 蓝桥杯ADV-202 算法提高 最长公共子序列
  9. 老男孩python第一天笔记
  10. Can you answer these queries? HDU 4027 线段树
  11. MP3音频解码详细过程(二)
  12. 2020第六届上海市大学生网安大赛Misc|writeup
  13. 获取一组坐标的中心点
  14. s5p4418摄像头程序使用教程
  15. 机电工程专业成功转行IT的真实经历
  16. linux mysql 开发环境_RedHat Linux下QT平台MySQL数据库开发环境配置
  17. 感谢网友,让我实现了Zbrush笔刷自由
  18. 常用计算机高级语言及其特点,计算机高级语言特点是什么?常见的语种有哪些?...
  19. C++ 虚函数详解(虚函数表、vfptr)——带虚函数表的内存分布图
  20. 自动化立体仓库的规划与设计(学习笔记)

热门文章

  1. 环保材料营造健康氛围
  2. AP考试取消,AP课程学生如何申请英国大学?
  3. 《笑傲江湖》一共有几个版本? -- 影评
  4. 15个微软Edge浏览器插件,你用过哪几个?
  5. canvas+js实现简单的双人坦克对战小游戏
  6. 数据库作业7:SQL练习4 - SELECT(连接查询、嵌套查询)
  7. 火山引擎:数字化时代,如何给金融业注入“内容活水”?
  8. 117年的老商场也直播卖货了:活下来,再谈创造纪录!
  9. 修改图片颜色 色相 饱和度 亮度 ColorMatrix
  10. 多媒体个人计算机软件系统由,多媒体计算机软件系统由什么组成