付宝红包分享

小伙伴们,给大家发红包喽!人人可领,领完就能用。祝大家领取的红包金额大大大!#吱口令#长按复制此消息,打开支付宝就能领取!SJIJ3r58z8

步骤:1. 按照官方文档,编写此接口所需要的各个参数;

2. 对各参数进行签名处理,生成URL;

3.调用此URL,跳转到支付宝官方扫码支付页面;

4.支付成功后会进行回调通知,通知自己系统已经支付

一.访问参数:

二.回调参数

array(22) {

["body"]=>//商品描述

string(18) "690525226950818654"

["buyer_email"]=>

string(16) "11111@qq.com"

["buyer_id"]=>

string(16) "2222902033926271"

["exterface"]=>

string(25) "create_direct_pay_by_user" //调用的接口

["extra_common_param"]=>

string(10) "real_order"   //公用回传参数

["is_success"]=>

string(1) "T"  //支付结果

["notify_id"]=>

string(70) "RqPnCoPT3K9%2Fvwbh3InWf0XW8pWwcio6

G0Hni8UM0LwgNbG56RwvWoCVp73ob902VflF"

["notify_time"]=>

string(19) "2016-08-23 00:24:34"

["notify_type"]=>

string(17) "trade_status_sync"

["out_trade_no"]=>  //自己生成的支付码,pay_SN

string(18) "690525226950818654"

["payment_type"]=>

string(1) "1"

["seller_email"]=>

string(20) "zhifubao@qq.com"//卖家email

["seller_id"]=>

string(16) "

id="0KSFindDIV">2088

221624104006"//卖家alipay_partner

["subject"]=>商品名称

string(31) "实物订单_690525226950818654"

["total_fee"]=>

string(4) "0.01"//交易金额,单位是元

["trade_no"]=>

string(28) "2016082321001004270244845496",//支付宝生成的

["trade_status"]=>

string(13) "TRADE_SUCCESS"//交易结果

["sign"]=>

string(32) "1e85b163affcaab205767ec8585d64cd"//签名

["sign_type"]=>

string(3) "MD5"

}

记得在自己回调方法的逻辑里添加合法性验证

三. 注意:

1.需要特别提醒的两个参数:

return_url:同步页面回调地址,可以配置HOST在本地调试(扫码成功以后,会在扫码页面带回调参数跳转回此URL,进行后续操作)

notify_url: 异步回调通知地址,只能在服务器调试(扫码成功以后,支付宝系统带回调参数异步访问此URL,进行后续操作)

2.回调时记得进行合法性验证(详细代码见下方)

四.相关函数:

1.支付相关

/**

* 取得支付宝签名

*

* @return string

*/

private function sign($parameter) {

$mysign = "";

$filtered_array = $this->para_filter($parameter);

$sort_array = $this->arg_sort($filtered_array);

$arg = "";

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

$arg    .= $key."=".$this->charset_encode($val,(empty

($parameter['_input_charset'])?"UTF-8":

$parameter['_input_charset']),(empty($parameter['_input_charset'])

?"UTF-8":$parameter['_input_charset']))."&";

}

$prestr = substr($arg,0,-1);  //去掉最后一个&号

$prestr .= $parameter['key'];

if($parameter['sign_type'] == 'MD5') {

$mysign = md5($prestr);

}elseif($parameter['sign_type'] =='DSA') {

//DSA 签名方法待后续开发

die("DSA 签名方法待后续开发,请先使用MD5签名方式");

}else {

die("支付宝暂不支持".$parameter['sign_type']."类型的签名方式");

}

return $mysign;

}

/**

* 除去数组中的空值和签名模式

*

* @param array $parameter

* @return array

*/

private function para_filter($parameter) {

$para = array();

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

if($key == "sign" || $key == "sign_type" || $key == "key" ||

$val == "")continue;

else    $para[$key] = $parameter[$key];

}

return $para;

}

/**

* 重新排序参数数组

*

* @param array $array

* @return array

*/

private function arg_sort($array) {

ksort($array);

reset($array);

return $array;

}

/**

* 实现多种字符编码方式

*/

private function charset_encode($input,$_output_charset,

$_input_charset="UTF-8") {

$output = "";

if(!isset($_output_charset))$_output_charset  =

$this->parameter['_input_charset'];

if($_input_charset == $_output_charset || $input == null) {

$output = $input;

} elseif (function_exists("mb_convert_encoding")){

$output = mb_convert_encoding($input,$_output_charset,

$_input_charset);

} elseif(function_exists("iconv")) {

$output = iconv($_input_charset,$_output_charset,$input);

} else die("sorry, you have no libs support for charset change.");

return $output;

}

/**

* 制作支付接口的请求地址

*

* @return string

*/

private function create_url() {

$url        = $this->alipay_gateway_new;

$filtered_array = $this->para_filter($this->parameter);

$sort_array = $this->arg_sort($filtered_array);

$arg        = "";

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

$arg.=$key."=".urlencode($val)."&";

}

$url.= $arg."sign=" .$this->parameter['sign'] ."&sign_type="

.$this->parameter['sign_type'];

return $url;

}

2.回调相关:

/**

* 通知地址验证

*

* @return bool

*/

public function notify_verify() {

$param  = $_POST;

$param['key']   = $this->payment['payment_config']['alipay_key'];

$veryfy_url = $this->alipay_verify_url. "partner="

.$this->payment['payment_config']['alipay_partner']. "¬ify_id=".$param["notify_id"];

$veryfy_result  = $this->getHttpResponse($veryfy_url);

$mysign = $this->sign($param);

if (preg_match("/true$/i",$veryfy_result) && $mysign == $param["sign"])  {

return true;

} else {

return false;

}

}

/**

* 远程获取数据

* $url 指定URL完整路径地址

* @param $time_out 超时时间。默认值:60

* return 远程输出的数据

*/

private function getHttpResponse($url,$time_out = "60") {

$urlarr     = parse_url($url);

$errno      = "";

$errstr     = "";

$transports = "";

$responseText = "";

if($urlarr["scheme"] == "https") {

$transports = "ssl://";

$urlarr["port"] = "443";

} else {

$transports = "tcp://";

$urlarr["port"] = "80";

}

$fp=@fsockopen($transports . $urlarr['host'],$urlarr['port'],

$errno,$errstr,$time_out);

if(!$fp) {

die("ERROR: $errno - $errstr
\n");

} else {

if (trim(CHARSET) == '') {

fputs($fp, "POST ".$urlarr["path"]." HTTP/1.1\r\n");

} else {

fputs($fp, "POST ".$urlarr["path"].'?_input_charset='

.CHARSET." HTTP/1.1\r\n");

}

fputs($fp, "Host: ".$urlarr["host"]."\r\n");

fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");

fputs($fp, "Content-length: ".strlen($urlarr["query"])."\r\n");

fputs($fp, "Connection: close\r\n\r\n");

fputs($fp, $urlarr["query"] . "\r\n\r\n");

while(!feof($fp)) {

$responseText .= @fgets($fp, 1024);

}

fclose($fp);

$responseText = trim(stristr($responseText,"\r\n\r\n"),"\r\n");

return $responseText;

}

}

php支付宝红包接口,支付宝支付接口(即时到账交易接口)相关推荐

  1. 聚合支付PC端-支付宝(即时到账交易接口)

    聚合支付 第三章 支付宝(即时到账交易接口) 文章目录 聚合支付 前言 一.开发前准备 二.java实现 1.pom中引入相关jar包 2.支付相关工具类 3.支付相关参数 4.支付实现 5.查询实现 ...

  2. 支付宝接口 - 即时到账交易接口 对接 整理 1

    支付宝官方开放平台接口说明: https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.Gp6DiG&treeId=62&a ...

  3. 支付宝即时到账交易接口和即时到账有密退款接口demo

    https://pan.baidu.com/s/1-bb33MZ26-o0M4sAd5meaw

  4. 2020年支付宝红包、支付宝转账、支付宝动态码原理

    2020年支付宝红包.支付宝转账.支付宝动态码原理 首选先拿到自己支付宝的userId 不明白需要交流请留下你的扣扣号码 https://www.toocode.cn 在上面可以获取uid,可以在线生 ...

  5. taobao.trades.sold.get-查询卖家已卖出的交易数据(根据创建时间),淘宝店铺卖出订单查询API接口,淘宝R2接口,淘宝oAuth2.0交易接口代码分享

    一.taobao.trades.sold.get-查询卖家已卖出的交易数据(根据创建时间),淘宝店铺卖出订单查询API接口,R2接口,oAuth2.0交易接口代码分享 搜索当前会话用户作为卖家已卖出的 ...

  6. 个人免签即时到账收款接口 bufpay.com 支持多账号收款

    有很多 bufpay 的用户反馈,单个手机收款有些时候不太方便,切换手机太麻烦:或者是营业额比较多,希望分摊到多个账号上面. 基于以上的问题,bufpay 开发了多手机收款的功能:每个收款的手机安装 ...

  7. 支付宝红包php,支付宝红包赏金跳转源码,一键复制红包码,裂变推广

    [html]代码库 支付宝到店红包搜索码跳转推广裂变-引流 *{ padding:0; margin:0; } .main{ overflow: hidden; } a { color:black; ...

  8. 支付宝红包唤起 支付宝自动搜索

    alipays://platformapi/startapp?requestType=hotword_b&appId=20001003&keyword=266715 效果图 转载于:h ...

  9. 如何快速对接淘宝开放平台API接口(淘宝店铺订单明文接口,淘宝店铺商品上传接口,淘宝店铺订单交易接口)

    很多电商系统的需求场景,都面临淘宝开放平台的接入,但这也是让不少开发者头疼的问题. 那么,如果快速接入呢?东哥的对接经验相信可以帮到不少开发者,快速接入.少走弯路. 1.公共参数 名称 类型 必须 描 ...

最新文章

  1. IDEA、webstorm设置编辑器恶心的竖线位置、隐藏竖线(参考线),然后代码自动换行
  2. 一文学会基于R的静态和动态网络绘制
  3. QT中播放音乐遇到的问题合集
  4. 线性规划的matlab实现
  5. java shape类_Java——Shape类
  6. 铺地毯(矩形的交+前后缀矩形交)
  7. LeetCode 364. 加权嵌套序列和 II(重复叠加)
  8. 外设驱动库开发笔记32:HLPM025K3 PM2.5传感器驱动
  9. libz mysql_Docker和Mysql:libz.so.1:无法打开共享对象文件:权限被拒绝
  10. 数学建模(6)典型相关性分析
  11. 南天PR系列存折打印机驱动程序
  12. 机器人手眼协调——机械臂自主抓取物体
  13. 正则表达式限制输入框输入
  14. CRX 4 Chrome
  15. 【ArcGIS】地表模型生成和显示
  16. 【前端开发遇到到的问题2】文字下方加下划线
  17. 居上无宦乐,达人不折腰
  18. mel频谱--学习笔记
  19. 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机的解决方案
  20. Linux 目录与文件

热门文章

  1. 修改自己电脑连接的路由器的配置网址192.168.1.1
  2. restful 验证码平台请求验证
  3. 用树莓派搭建远程下载+私有云盘(中篇)
  4. 有什么md5修改工具?快把这些工具收好
  5. 网络基础知识之IP与子网掩码和网络地址
  6. NX二次开发-UFUN导入图框UF_PART_import
  7. windows 安装apex_apex 安装/使用 记录
  8. Rcurl--炼数成金课程第一周
  9. VS Code + Latex + SumatraPDF 环境(实用)
  10. 【WPF学习手记】绘制箭头