PHP 支付
蚂蚁金服开放平台
2.下载PHP的SDK&demo
3.申请应用 OR 使用沙箱环境
4.生成应用私钥&应用公钥
5.配置config.php
蚂蚁金服开放平台”,对,没错,就是叫这个名字,现在支付宝的开发接口都在这个开放平台上!这里有各种文档供你搜索和学习。
第一次使用的话,进入“文档中心”-》“开发文档”

这里有各种选择,总有一款适合你:

我们这里选择电脑网站支付:

如上图所示,左侧的菜单对应的内容,足够指导你了。不过我还是要继续bala······
下载php的sdk,单击左侧菜单“SDK&Demo”,下载php对应的文件:

下载之后的demo还不能直接使用,因为需要配置config.php文件:

2.申请应用 or 使用沙箱环境
登录“蚂蚁金服开放平台”之后,单击“开发者中心”

2.1 申请应用
登录之后,单击“开发者中心”-》“创建应用”,具体步骤参考支付宝官网文档:电脑网站支付快速接入,这里不再赘述
2.2使用沙箱环境
恩,没错,我只是一个屌丝程序员,不是企业或者个体工商户,所以没法申请一个正式的“应用”,因为2.1步骤里需要提交企业的资料才行。
所以我们就是用沙箱环境,恩,就是这么机智。
单击"研发服务"下的“沙箱环境”-》“沙箱应用”,配置应用公钥

接下来就需要生成密钥对,配置支付宝平台上的。支付宝提供了生成私钥、公钥的工具,很好操作。
2.2.1生成密钥
鼠标放到“RSA2(SHA256)密钥(推荐)”的图标上,就会出现提示:

单击生成方法,就会进入对应页面,下载工具,生成公私密钥。
2.2.2配置config.php
生成之后:
应用公钥配置到沙箱应用的RSA2对应的应用公钥里;
应用私钥配置到config.php的“商户私钥”;
沙箱应用的APPID复制到config.php的appid里;
沙箱环境的“支付宝公钥”配置到config.php的“支付宝公钥”里面;
config.php的“支付宝网关”需要改为沙箱应用的“支付宝网关”。
congfig的notify_url和return_url,主要是通过支付宝返回的数据,处理自己业务的接口。可以先不配置,因为目前已经可以成功请求支付宝的支付接口了。
三、配置之后,请求支付宝
1.config.php:

2.支付宝官方demo页面:

3.单击“付款”:

OK啦
---------------------------------------------------------------------------------------end-----------------------------------------------------------------------------------------------------------------------------
最后吐槽一下,沙箱环境的支付没法走通!
原因是:支付界面必须使用支付宝提供的产品“沙箱钱包”通过扫一扫支付,我们手机上正常的支付宝是没法扫一扫支付的,而且只提供Android版,见下图:

于是我去下载,但是我下载下来之后,必须注册新账号(类似于测试账号),但是一直注册不成功,打了支付宝客服咨询,然并卵,客服说他自己也不懂,不过客服的态度倒是挺好
---------------------------------------------------------------------补充一下,正式应用的支付界面------------------------------------------------------------

PHP 支付的更多相关文章
- 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付
前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...
- Android调用微信登陆、分享、支付
前言:用了微信sdk各种痛苦,感觉比qq sdk调用麻烦多了,回调过于麻烦,还必须要在指定包名下的actvity进行回调,所以我在这里写一篇博客,有这个需求的朋友可以借鉴一下,以后自己别的项目有用到也 ...
- 基于ASP.NET/C#开发国外支付平台(Paypal)学习心得。
最近一直在研究Paypal的支付平台,因为本人之前没有接触过接口这一块,新来一家公司比较不清楚流程就要求开发两个支付平台一个是支付宝(这边就不再这篇文章里面赘述了),但还是花了2-3天的时间通 ...
- 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包
微信支付教程系列之现金红包 最近最弄这个微信支付的功能,然后扫码.公众号支付,这些都做了,闲着无聊,就看了看微信支付的其他功能,发现还有一个叫“现金红包”的玩意,想 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之扫码支付
微信支付教程系列之扫码支付 今天,我们来一起探讨一下这个微信扫码支付.何为扫码支付呢?这里面,扫的码就是二维码了,就是我们经常扫一扫的那种二维码图片,例如,我们自己添 ...
- 【原创分享·微信支付】 C# MVC 微信支付教程系列之公众号支付
微信支付教程系列之公众号支付 今天,我们接着讲微信支付的系列教程,前面,我们讲了这个微信红包和扫码支付.现在,我们讲讲这个公众号支付.公众号支付的应用环境常见的用户通过公众号,然后再通 ...
- 【原创分享·微信支付】C# MVC 微信支付之微信模板消息推送
微信支付之微信模板消息推送 今天我要跟大家分享的是“模板消息”的推送,这玩意呢,你说用途嘛,那还是真真的牛逼呐.原因在哪?就是因为它是依赖微信生存的呀,所以他能不 ...
- 工行ICBC_WAPB_B2C支付接口
一. 前期准备 手机银行(WAP)B2C在线支付接口说明V1.0.0.6.doc 手机银行移动生活商户及门户网站js接口API.doc 支付组件ICBCEBankUtil.dll和infosecapi ...
- NodeJs支付宝移动支付签名及验签
非常感谢 :http://www.jianshu.com/p/8513e995ff3a?utm_campaign=hugo&utm_medium=reader_share&utm_co ...
- Android—基于微信开放平台v3SDK,开发微信支付填坑。
接触微信支付之前听说过这是一个坑,,,心里已经有了准备...我以为我没准跳坑出不来了,没有想到我填上了,调用成功之后我感觉公司所有的同事都是漂亮的,隔着北京的大雾霾我仿佛看见了太阳~~~好了,装逼结束 ...
随机推荐
- LaTeX排版指南
V0.0.1 工具链 CTeX:http://www.ctex.org/HomePage ,CTeX是一个中文套装,但也同时发布一个独立的ctex宏包 TeXLive:https://tug.org/ ...
- 201521123117 《Java程序设计》第9周学习总结
1. 本周学习总结 2. 书面作业 1.常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何避免? 经常出现Numbe ...
- 201521123009 《Java程序设计》第9周学习总结
1. 本周学习总结 2. 书面作业 本次PTA作业题集异常 Q1:常用异常 题目5-1 1.1 截图你的提交结果(出现学号) 1.2 自己以前编写的代码中经常出现什么异常.需要捕获吗(为什么)?应如何 ...
- 201521123096《Java程序设计》第十三周学习总结
1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...
- python之socket--粘包补充
struct补充 import struct import json header_dic={'total_size':123123, 'filename':None, 'md5':None} hea ...
- Hibernate逆向工程【PowerDesigner、idea环境下】
为什么要使用逆向工程 由于我们每次编写Hibernate的时候都需要写实体,写映射文件.而且Hibernate的映射文件也容易出错.而逆向工程可以帮我们自动生成实体和映射文件,这样就非常方便了. 使用 ...
- python 集合的操作
list_1 = set([1,2,3,4,5])#print(list_1,type(list_1))list_2 = set([1,2,3,6,7,8,9,10])#print(list_2,ty ...
- 来自projecteuler.net网站的练习题2
0.题目如下: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By st ...
- 我的第一个python web开发框架(1)——前言
由于之前经验不是很丰富,写的C#系统太过复杂,所以一直想重写,但学的越多越觉得自己懂的越少,越觉的底气不足.所以一直不敢动手,在内心深处对自己讲,要静下心来认真学习,继续沉淀沉淀.这两年多以来找各种机 ...
- Java代理和动态代理
code from <Thinking in java> 代理模式 interface Interface { void doSomething(); void somethingElse ...