<h1 align="center">Payment使用文档</h1>
# JetBrains OS licenses
`payment` had been being developed with PhpStorm under the free JetBrains Open Source license(s) granted by JetBrains s.r.o., hence I would like to express by thanks here.
[![Stargazers over time](./jetbrains-variant-4.svg)](https://www.jetbrains.com/?from=ABC)
[![Software license][ico-license]](LICENSE)
[![Latest development][ico-version-dev]][link-packagist]
[![Monthly installs][ico-downloads-monthly]][link-downloads]
老版本文档:http://helei112g.github.io/payment
新版本文档如下
## Stargazers over time
[![Stargazers over time][starchart-cc]](https://starchart.cc/helei112g/payment)
-----
# 联系&打赏
[打赏名单](SUPPORT.md)
请大家使用时根据示例代码来,有bug直接提交 `issue`;**提供付费技术支持**。
<div style="margin:0 auto;">
<p align="center" style="margin:0px;"><img width="60%" src="https://dayutalk.cn/img/pub-qr.jpeg?v=123"></p>
<p align="center" style="margin:0px;"><img width="60%" src="https://dayutalk.cn/img/pay-qr.jpeg"></p>
</div>
# 目录
- [公告](#公告)
- [重要通知](#重要通知)
- [计划](#计划)
- [Payment解决什么问题](#Payment解决什么问题)
- [如何使用](#如何使用)
- [安装](#安装)
- [项目集成](#项目集成)
- [设计支付系统](#设计支付系统)
- [支持的接口](#支持的接口)
- [贡献指南](#贡献指南)
- [代码设计](#代码设计)
- [接入支付指南](#接入支付指南)
- [第三方文档](#第三方文档)
- [License](#License)
# 公告
第三方支付的一些重要更新提示,以及项目相关的计划信息。
## 重要通知
1. 2019-04: **提醒:微信CA证书进行了更新,请更新项目到最新版本。否则5月29日后,将无法支付**
> 官方公告: https://pay.weixin.qq.com/index.php/public/cms/content_detail?lang=zh&id=56602
## 计划
1. 2019/3/28 开始重构整个项目,doing... ...
> 重构后的项目与 `4.x` 以前的版本不兼容,请使用者注意!
# Payment解决什么问题
`Payment` 的目的是简化大家在对接主流第三方时需要频繁去阅读第三方文档,还经常遇到各种问题。`Payment` 将所有第三方的接口进行了合理的建模分类,对大家提供统一的接入入口,大家只需要关注自身业务并且支付系统设计上。
目前已经集成:支付宝、微信、招商绝大部分功能。也欢迎各位贡献代码。 [贡献指南](#贡献指南)
# 如何使用
## 安装
当前 `Payment` 项目仅支持 `PHP version > 7.0` 的版本,并且仅支持通过 `composer` 进行安装。
**需要 `PHP` 安装以下扩展:**
```txt
- ext-curl
- ext-mbstring
- ext-bcmath
- package-Guzzle
```
**composer安装方式:**
直接在命令行下安装:
```bash
composer require "riverslei/payment:*"
```
通过项目配置文件方式安装:
```yaml
"require": {
"riverslei/payment": "*"
}
```
## 项目集成
按照上面的步骤完成安装后,即可在项目中使用。
对于整个过程,提供了唯一的入口类 `\Payment\Client`,每一个渠道,均只介绍 `APP支付` 与 `异步/同步通知` 该如何接入。会重点说明每个请求支持的参数。
**APP支付demo**
```php
$config = [
// 配置信息,各个渠道的配置模板见对应子目录
];
// 请求参数,完整参数见具体表格
$payData = [
'body' => 'test body',
'subject' => 'test subject',
'trade_no' => 'trade no',// 自己实现生成
'time_expire' => time() + 600, // 表示必须 600s 内付款
'amount' => '5.52', // 微信沙箱模式,需要金额固定为3.01
'return_param' => '123',
'client_ip' => isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '127.0.0.1', // 客户地址
];``
// 使用
try {
$client = new \Payment\Client(\Payment\Client::WECHAT, $wxConfig);
$res = $client->pay(\Payment\Client::WX_CHANNEL_APP, $payData);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
exit;
} catch (\Payment\Exceptions\GatewayException $e) {
echo $e->getMessage();
var_dump($e->getRaw());
exit;
} catch (\Payment\Exceptions\ClassNotFoundException $e) {
echo $e->getMessage();
exit;
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
```
**异步/同步通知**
```php
// 自己实现一个类,继承该接口
class TestNotify implements \Payment\Contracts\IPayNotify
{
/**
* 处理自己的业务逻辑,如更新交易状态、保存通知数据等等
* @param string $channel 通知的渠道,如:支付宝、微信、招商
* @param string $notifyType 通知的类型,如:支付、退款
* @param string $notifyWay 通知的方式,如:异步 async,同步 sync
* @param array $notifyData 通知的数据
* @return bool
*/
public function handle(
string $channel,
string $notifyType,
string $notifyWay,
array $notifyData
) {
//var_dump($channel, $notifyType, $notifyWay, $notifyData);exit;
return true;
}
}
$config = [
// 配置信息,各个渠道的配置模板见对应子目录
];
// 实例化继承了接口的类
$callback = new TestNotify();
try {
$client = new \Payment\Client(\Payment\Client::ALIPAY, $config);
$xml = $client->notify($callback);
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
exit;
} catch (\Payment\Exceptions\GatewayException $e) {
echo $e->getMessage();
exit;
} catch (\Payment\Exceptions\ClassNotFoundException $e) {
echo $e->getMessage();
exit;
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
```
从上面的例子简单总结下,所有的支持的能力,通过 `\Payment\Client` 对外暴露方法;所有需要的常量也在这个类中进行了定义。其次需要一个 `$config`,关于config的模板,在每个渠道下面去看。最后一个传入请求的参数,完整的参数会在每个渠道中列出来,需要说明的是这些参数名字根据第三方文档部分进行了改写。在使用的时候请注意。
参数选项说明:
- Y: 必须
- N: 非必须
### 支付宝
**配置文件模板**
```php
$config = [
'use_sandbox' => true, // 是否使用沙盒模式
'app_id' => '2016073100130857',
'sign_type' => 'RSA2', // RSA RSA2
// 支付宝公钥字符串
'ali_public_key' => '',
// 自己生成的密钥字符串
'rsa_private_key' => '',
'limit_pay' => [
//'balance',// 余额
//'moneyFund',// 余额宝
//'debitCardExpress',// 借记卡快捷
//'creditCard',//信用卡
//'creditCardExpress',// 信用卡快捷
//'creditCardCartoon',//信用卡卡通
//'credit_group',// 信用支付类型(包含信用卡卡通、信用卡快捷、花呗、花呗分期)
], // 用户不可用指定渠道支付当有多个渠道时用“,”分隔
// 与业务相关参数
'notify_url' => 'https://dayutalk.cn/notify/ali',
'return_url' => 'https://dayutalk.cn',
];
```
#### APP支付请求参数
> 对应channel: \Payment\Client::ALI_CHANNEL_APP
字段 | 解释 | 必须
---|---|---
amount | 订单总金额,单位为元,精确到小数点后两位,取值范围[0.01,100000000] | Y
goods_type | 商品主类型 :0-虚拟类商品,1-实物类商品 | Y
body | 对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 | Y
subject | 商品的标题/交易标题/订单标题/订单关键字等。 | Y
product_code | 销售产品码,商家和支付宝签约的产品码 | N
trade_no | 商户网站唯一订单号 | N
promo_params | 优惠参数 注:仅与支付宝协商后可用 | N
return_params | 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参�
没有合适的资源?快使用搜索试试~ 我知道了~
PHP酒店管理系统(多酒店版).zip
共2583个文件
php:1428个
html:126个
mp3:126个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 26 下载量 61 浏览量
2022-04-30
21:33:13
上传
评论 6
收藏 80.13MB ZIP 举报
温馨提示
PHP酒店管理系统(多酒店版)、无限创建分店(想创建多少分店都可以,只有你高兴)丶入住管理 丶预订管理 丶语音提示、语音播报 丶房态实时丶图表数据 丶预警提示 丶短信营销 丶会员管理 丶商品管理 丶报表中心 丶财务管理 丶设备管理丶 App丶小程序丶H5丶酒店预定丶点餐丶叫服务丶店内服务 内部员工App PHP酒店管理系统(多酒店版)、无限创建分店(想创建多少分店都可以,只有你高兴)丶入住管理 丶预订管理 丶语音提示、语音播报 丶房态实时丶图表数据 丶预警提示 丶短信营销 丶会员管理 丶商品管理 丶报表中心 丶财务管理 丶设备管理丶 App丶小程序丶H5丶酒店预定丶点餐丶叫服务丶店内服务 内部员工App PHP酒店管理系统(多酒店版)、无限创建分店(想创建多少分店都可以,只有你高兴)丶入住管理 丶预订管理 丶语音提示、语音播报 丶房态实时丶图表数据 丶预警提示 丶短信营销 丶会员管理 丶商品管理 丶报表中心 丶财务管理 丶设备管理丶 App丶小程序丶H5丶酒店预定丶点餐丶叫服务丶店内服务 内部员工App PHP酒店管理系统(多酒店版)、无限创建分店(想创建多少分店都可以,只有你高
资源推荐
资源详情
资源评论
收起资源包目录
PHP酒店管理系统(多酒店版).zip (2583个子文件)
random_compat.phar.pubkey.asc 488B
var-dump-server.bat 138B
start_for_win.bat 134B
bootstrap3.4.css 150KB
bootstrap.css 147KB
bootstrap.css 146KB
animated-border.css 137KB
bootstrap3.0.css 130KB
bootstrap.css 124KB
bootstrap-combined.min.css 123KB
animated-border.min.css 121KB
bootstrap.min.css 104KB
layui.css 86KB
main.css 75KB
styles.css 74KB
animate.min.css 52KB
jquery-ui.css 35KB
font-awesome.min.css 30KB
bootstrap-grid.css 24KB
bootstrap-responsive.css 22KB
bootstrap-responsive.min.css 16KB
layer.css 14KB
xadmin.css 10KB
layui.mobile.css 10KB
lang2fonts.css 9KB
linearicons.css 8KB
laydate.css 7KB
magnific-popup.css 7KB
toastr.css 7KB
toastr.css 7KB
htmleaf-demo.css 6KB
toastr.min.css 5KB
toastr.min.css 5KB
bootstrap-reboot.css 5KB
qunit.css 5KB
owl.carousel.css 4KB
nice-select.css 4KB
div.css 4KB
htmlDescriptor.css 3KB
login.css 2KB
mpdf.css 2KB
style.css 2KB
normalize.css 2KB
code.css 1KB
theme10.min.css 709B
theme5.css 590B
webuploader.css 515B
font.css 505B
theme4.css 309B
theme1.css 304B
theme3.css 297B
theme2.css 288B
linebrdictK.dat 1MB
linebrdictT.dat 295KB
linebrdictL.dat 124KB
.php_cs.dist 4KB
phpunit.xml.dist 826B
phpstan.neon.dist 187B
Dockerfile 387B
.editorconfig 271B
.editorconfig 131B
.example.env 231B
fontawesome-webfont.eot 162KB
Linearicons-Free.eot 55KB
iconfont.eot 48KB
iconfont.eot 40KB
icomoon.eot 2KB
hiddeninput.exe 9KB
appcity.gif 3.43MB
index.gif 1.46MB
appmenu.gif 1.01MB
1.gif 1002KB
admin.gif 955KB
3.gif 900KB
login.gif 862KB
moves.gif 634KB
2.gif 593KB
rooms.gif 535KB
75b3e956ee2f96faa1856d107c0919bc.gif 234KB
fe071d5c19e1e9465eb7078cf580977f.gif 91KB
8afcc1d5338ddc215c5a081ca33be0f1.gif 91KB
2edbfdfc42b28aaa9aa8aba2b4746998.gif 91KB
6c6edd29af3c41dbb08cc11e2ae22e15.gif 91KB
5a9ee31d7410d480429b15057cef0d31.gif 91KB
30e1f0d3bbffb46871f2de043b42321b.gif 91KB
0c4c00ff4f0d959f03cbf94164c68d7a.gif 68KB
59.gif 10KB
22.gif 10KB
24.gif 8KB
13.gif 7KB
16.gif 7KB
39.gif 6KB
64.gif 6KB
63.gif 6KB
50.gif 6KB
loading-0.gif 6KB
4.gif 6KB
1.gif 5KB
42.gif 5KB
71.gif 5KB
共 2583 条
- 1
- 2
- 3
- 4
- 5
- 6
- 26
「已注销」
- 粉丝: 792
- 资源: 3613
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页