<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 | 公用回传参数,如果请求时传递了该参数,则返回给商户时会回传该参�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
更新说明 新增: 1.商品套餐模块 2.移动端增加优惠券商品列表 3.移动端首页,平台后台登录页,商户后台登录页底部增加版权信息 4.平台后台增加修改用户密码功能 5.平台后台下载小程序增加是否显示社区菜单配置 6.移动端商品分类页面增加推荐分类 7.app 端增加版本检测功能 8.适配最新版本PC端更新 优化: 1.移动端商品列表样式优化 2.优化短信验证码防刷 Pc 更新: 1.下单页面增加配送方式选择 2.pc端增加发票模块 3.pc端增加预售模块 4.pc首页顶部增加广告位 5.个人中心增加修改手机号和修改密码 备注:本源码为官方正版源码,非破解版,仅供下载研究学习,商业使用请联系购买授权!
资源推荐
资源详情
资源评论
收起资源包目录
CRMEB 多商户商城系统,B2B2C模式电子商务系统,新增商品套餐功能v1.7.3(0122)(完整包) (2000个子文件)
-test 35B
random_compat.phar.pubkey.asc 488B
carbon.bat 93B
test.bmp 0B
carbon 378B
carbon 378B
ReaderWriter.cd 6KB
Architecture.cd 2KB
CHANGELOG 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 1KB
config 322B
config 293B
config 280B
config 263B
config 263B
config 252B
config 247B
config 241B
config 241B
config 239B
config 239B
config 238B
config 238B
config 237B
config 237B
config 236B
config 235B
config 71B
PHPExcel_Writer_Serialized.cs 2KB
PHPExcel_Reader_Excel5.cs 1KB
PHPExcel_Reader_Serialized.cs 1016B
PHPExcel_IOFactory.cs 894B
PHPExcel.cs 862B
PHPExcel_Writer_Excel2007.cs 562B
PHPExcel_Reader_Excel2007.cs 561B
IWriter.cs 246B
IReader.cs 245B
Worksheet.cs 195B
ClassDiagrams.csproj 3KB
app.6b215710.css 262KB
app.5863e201.css 260KB
index.a5c69d49.css 92KB
guildford.css 71KB
guildford.css 71KB
ueditor.css 43KB
ueditor.min.css 34KB
iconfont.css 24KB
iconfont.css 24KB
chunk-libs.d369da27.css 21KB
chunk-libs.d369da27.css 21KB
video-js.css 21KB
image.css 18KB
chunk-0cafa016.ee8d2c73.css 17KB
video.css 15KB
attachment.css 14KB
base.css 12KB
base.css 12KB
video-js.min.css 11KB
chunk-055f7736.747d0b7e.css 10KB
install.css 10KB
shCoreDefault.css 7KB
chunk-63fe09b9.3fac9dd4.css 5KB
chunk-c5f5ffe4.f83f2858.css 5KB
chunk-e6278b14.dbe5b0e5.css 5KB
chunk-5b8b7def.1eb5fb9c.css 5KB
chunk-1340e52e.340bdbdf.css 4KB
chunk-50bd9986.8023ea86.css 4KB
scrawl.css 4KB
chunk-14d77056.d8ba3153.css 4KB
chunk-5dbf2963.1bd8a64c.css 3KB
chunk-0a490b4e.619276de.css 3KB
htmlDescriptor.css 3KB
chunk-0c46a76a.4167d090.css 3KB
codemirror.css 3KB
charts.css 3KB
homepage.css 2KB
background.css 2KB
chunk-a788a486.e0e72284.css 2KB
chunk-2fea180e.028656b1.css 2KB
chunk-026dcde9.7b7196ba.css 2KB
chunk-7a812618.24f239e5.css 2KB
chunk-ce3e944e.d7fa2162.css 2KB
chunk-commons.c92957e5.css 2KB
共 2000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20
资源评论
- ProperZhang2022-04-29用户下载后在一定时间内未进行评价,系统默认好评。
爱学习的卢生
- 粉丝: 235
- 资源: 66
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功