Payment:支付宝手机网站支付教程
支付宝的H5支付体验真不错(支付宝叫他手机网站支付)。
反观微信支付干嘛要把H5支付藏起来?而且体验还那么差。
Payment 3.0
支付宝的配置设置文档请 点击这里
项目GitHub地址:https://github.com/helei112g/payment
从本篇开始,将用支付宝的沙箱方式进行演示,在项目的 payment/examples
中我已经提供了我的沙箱帐号。
新版接口已经同时支持 RSA 与 RSA2 。更换签名方式时,注意公钥的变化,在demo中我进行了注释。
另外支付宝为了提升支付体验,可以将 手机网站支付转Native支付
,对于混合应用是非常好的体验。这部分服务器端的业务逻辑无须变动,只需要客户端更新到最新的 详情地址
还是先讲手机网站支付需要设置哪些参数,后面用代码演示。代码部分大家会发现跟 即时到账
支付的使用完全一致。他们的不同之处仅仅是下单参数的区别。
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
body | boolean | 是 | 商品描述 |
subject | string | 是 | 商品名称,该参数最长为128个汉字 |
order_no | string | 是 | 商户网站唯一订单号 |
timeout_express | string | 是 | 设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。 |
amount | float | 是 | 该笔订单的资金总额,单位为RMB-Yuan |
return_param | string | 是 | 公用回传参数 |
goods_type | string | 否 | 商品主类型:0—虚拟类商品,1—实物类商品 默认为1 |
store_id | string | 否 | 商户门店编号 |
body
主要是对商品的描述,根据自己的业务写就好,不过不要用一些非常特殊的字符,支付宝可能会进行一些处理,导致你的结果与预期不一样
subject
可以写一下商品名称信息,主要是方便支付宝后台对账时查看
order_no
自己生成的订单号,每次下单的单号必须唯一。也就是说:同一个 order_no 他的其他下单数据不能发生变化,价格、名称等等。如果有变化,需要重新生成一个订单号。
timeout_express
订单过期时间,很简单,你希望在那一刻过期,就写那个点的时间戳。只会精确到分钟
amount
订单的金额,就是用户实际需要支付的金额。
return_param
希望支付宝异步通知时,原样返回给你的数据,同样注意避免一些特殊字符
goods_type
用来区分购买的是实际商品还是虚拟商品,虚拟商品不需要物流发货,并且 虚拟类商品不支持使用花呗渠道
store_id
门店编号,这部分数据主要是支付宝为了将业务深化到线下而提供的,如果用不到,不设置就好。
代码调用。
use Payment\Common\PayException;
use Payment\Client\Charge;$config = require_once('./aliconfig.php');// 支付宝的配置信息$channel = 'ali_wap';
$payData = ['body' => '一个苹果','subject' => '牛逼公司--付款吧','order_no' => 'NB12312355','timeout_express' => '1489241888','amount' => '100','return_param' => 'buy some','goods_type' => 1,'store_id' => '',// 没有就不设置
];try {$payUrl = Charge::run($channel, $config, $payData);
} catch (PayException $e) {// 异常处理exit;
}echo htmlspecialchars($payUrl);
大家在这里可以回到即时到账的部分对比一下,调用代码完全一致。唯一的差别就是 payData
中的些微差别。
多了一个 store_id
参数。少了另外两个参数: qr_mod paymethod
后面的几种支付在调用上也是如此没有差别,变化主要时围绕 payData
进行的。
当然这里最重要的变化是:$channel
。Payment 知道使用那种支付方式,完全是根据这个参数来设置的。因此一定要设置正确。再把对应的信息贴出来。方便大家查看。
名称 | 含义 |
---|---|
ali_web | 即时到账 |
ali_app | app支付(移动支付) |
ali_wap | H5支付(手机网站支付、wap支付) |
ali_qr | 当面付中的扫码支付 |
ali_bar | 当面付中的条码支付 |
另外这里返回的依然是一个url。大家根据自己的业务进行合理的处理。htmlspecialchars()
函数的目的还是为了转义,正式使用时,请注意。
关于异步通知部分,会有专门的文章讲解,这里暂时略过。请关注后面的文章。
如果你有不清楚的或者愿意交流的地方,请联系我:
邮箱:dayugog@gmail.com
如果你觉得这个项目有帮助到你,请打赏我,让我有动力持续下去 左边微信,右边支付宝:
ps: 一般性的问题请大家可以先查资料,如果实在无法解决找我吧(不免费服务)。
关于沙箱
对于支付宝的沙箱功能,我得再啰嗦几句。先把我配置的沙箱帐号贡献出来。方便大家测试
商家信息
- 商家账号 naacvg9185@sandbox.com
- 商户UID 2088102169252684
- appId 2016073100130857
买家信息
- 买家账号 aaqlmq0729@sandbox.com
- 登录密码 111111
- 支付密码 111111
当前沙箱的买家帐号,只能使用 android
版本进行登陆。
沙箱钱包只支持扫一扫、付款码、门店详情页功能,其余功能不提供
所以大家,不要在使用我提供的沙箱帐号时,用你们真实的支付宝帐号去支付,那样子是不会成功的。沙箱的所有功能,都只能使用上面的沙箱帐号去完成。
Payment:支付宝手机网站支付教程相关推荐
- 支付宝手机网站支付签约强开WAP支付,提示“系统综合评估签约条件不满足”或不满足国家法律法规或支付宝用户服务协议等的解决方案!支付宝H5支付开通方法详解
一.如何开通支付宝手机网站支付 正常来说,按照官方的指引要求填写相关资料,即可开通支付宝手机网站支付.但是,更多的时候我们的申请都会碰到一些阻力,常见的阻力就是"系统综合评估签约条件不满足, ...
- php手机网站支付宝_PHP实现支付宝手机网站支付功能
PHP实现支付宝手机网站支付功能的方法:首先开通支付宝商家中心里面的手机网站支付:然后进入开发者中心,获取到APPID:接着去文档中心下载"DEMO":最后将"demo& ...
- 支付宝手机网站支付补全信息提示 系统综合评估签约条件不满足解决
申请支付宝 手机网站支付 成功后需补全经营信息,但是补全提交时提示 "系统综合评估签约条件不满足解决",需要检查下自己的支付宝账号是否满足以下申请条件: 1.申请前必须拥有经过实 ...
- 支付--支付宝手机网站支付(WAP)
介绍: 这是放在微信供公众号内的一个项目,支付模块设计到微信公众号支付和支付宝手机网站支付,这次把支付宝手机网站支付整理下来. 文档: 支付宝手机网站支付的开发文档: https://docs.ope ...
- 支付宝手机网站支付实战踩坑
准备 需求 需求就是最简单的对接支付宝支付接口 方案心路历程 简单用http对接一下,不过想了一下觉得第三方提供的SDK总是不用,所以打算尝试一下 支付宝新版SDK,从文档到git再安装到使用,然后放 ...
- 4 支付宝手机网站支付demo讲解
目录 1 引言 2 业务流程 3 用户下单 4 商户系统处理订单信息 5 支付宝向用户展示支付信息 6 用户付款 7 同步通知与异步通知 1 引言 前面三小节我们已经学过如何使用支付宝手机网站支付的功 ...
- 对接支付宝手机网站支付接口,alin10071
最近项目要增加支付宝扫二维码实现h5支付的功能,我们采用了调用支付宝手机网站支付接口:alipay.trade.wap.pay 但是每次调起返回都是 无可用支付方式 测了一天才发现是因为我的支付宝余额 ...
- Magento支付宝手机网站支付插件V6.0旗舰版发布,支持在微信中使用支付宝支付,订单重新支付功能!...
2019独角兽企业重金招聘Python工程师标准>>> 功能 严格按照支付宝接口文档编写代码. 支付宝异步通知机制,确保订单状态及时更新,无丢失遗漏. 订单完美对接:支付后即使关掉支 ...
- 【支付宝支付】Java实现支付宝手机网站支付流程
前言 微信登录网页授权与APP授权 微信JSAPI支付 微信APP支付 微信APP和JSAPI退款 支付宝手机网站支付 支付宝APP支付 支付宝退款 以上我都放到个人公众号,搜一搜:JAVA大贼船,文 ...
最新文章
- JavaScript 常见的六种继承方式
- Linux 进程(二) 进程地址空间
- linux-shell命令之chgrp(change group)【更改群组】
- kafka python框架_为什么选择R而不是Python做ETL
- Java IdentityHashMap put()方法与示例
- 1.10 编程基础之简单排序 04 奖学金 7分 python
- 服务器编译linux内核时间,Firefly-RK3399 Linux内核编译
- VB禁用CTRL +ALT + DEL(1)
- lua mysql 事务_为什么在 Redis 实现 Lua 脚本事务?-阿里云开发者社区
- 【codevs1907】【方格取数3】二分图最大带权独立集
- Mysql 如何设置字段自动获取当前时间
- 港交所上新衍生工具:“界内证”——交易规则与投资价值全解析
- 进入linux jed文本编辑怎么退出,Linux jed命令
- 语义分割算法汇总(长期更新)
- Android使用DatePickerDialog日期控件使用主题android:Theme.Holo.Light.Dialog有白边的问题解决
- apk部分手机安装失败_安卓手机安装软件失败的4种常见原因和解决办法
- DBeaver 安装及配置离线驱动
- 哔哩哔哩 2019秋招编程题---脸滚键盘
- Java面试题目分析
- 友盟朋友圈社区使用详解-(无UI版)
热门文章
- 【阿旭机器学习实战】【27】贝叶斯模型:新闻分类实战----CounterVecorizer与TfidVectorizer构建特征向量对比
- nginx: [emerg] CreateFile() “D:\soft\nginx-1.18.0/logs/nginx.pid“ failed (5: Access is denied)
- 线切割原理及应用(钣金)
- 【折半查找判定树画法思路】
- Dijkstra算法入门
- c++ 沉思录笔记——句柄(第一部分)
- 网络架构、云平台和微信公众号开发接入--基于嵌入式工程师的视觉
- Unity中将3D模型显示在UI上或者显示在UI前面
- Godaddy主机评测,Godaddy主机好吗?
- Cloze Test Helps: Effective Video Anomaly Detection via Learning to Complete Video Events 速读整理