# 更新说明
* 201-6-22 增加支付退款接口 调用方法,请看: `examples/refund.php`
* 201-6-21 增加微信网站扫码支付接口 调用方法,请看: `examples/wxcharge.php`
# 项目介绍
1. 集成了支付宝的即时到帐、移动支付、订单查询接口
2. 集成了微信的APP支付、订单查询接口
3. 运行时,需要 `php 5.5` 以上的版本。目前5.4的php版本也可运行。但后期可能会放弃该版本。
4. 项目中所有的金额传输单位全部为元。lib会自动在向微信支付时,处理为分。支付宝支付时保持不变。
5. 强烈建议,请查看 `examples` 文件中的示例代码。以下文档内容仅供参考,后期可能不能及时更新。
# 安装
建议安装方式:
```php
composer require riverslei/payment
```
一般安装方式:
直接下载项目,然后通过 `payment/autoload.php` 来引入项目。
对于还在使用不支持命名空间的同学,你们可以自己改造。不打算发布一个不支持命名空间的项目
# 调用方式
本来说想周末再补充文档。不过昨天发的项目,今天一看都差不多40个start了。我想不能等了。得早点把文档给出来。
## 支付宝网站支付
首先使用支付宝之前,需要在做以下几个配置
1. 修改 `src/Alipay/AlipayConfig.php` 这个配置文件。其中涉及到的信息在登陆商户支付版后,均可找到。需要注意的是
rsa秘钥的生成与上传。切记上传时一定检查是否有空格,有空格肯定报错,报错别问我。
2. 生成的rsa秘钥,一定要放在 `src/Alipay/safekey` 这个文件夹下面。一把来说我不要求你的文件命令,但是别用中文命令,最好直接默认使用生成出来的命令。
现在来说说调用的事。
首选使用支付前,需要获得一个支付对象。由于支付对象有多个(微信APP、支付宝网站、支付宝移动支付等),所以这里通过依赖接口,静态工厂方法,来方便大家使用。
下面示例代码是:支付宝网站支付的演示代码。这里如果不够清晰,可以看 `examples` 文件夹中的示例代码。
```php
$alipayDirect = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_ALIPAY_DIRECT);
$payData = [
"order_no" => 'F616699445072025',// 必须, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
"amount" => '0.01',// 必须, 订单总金额, 人民币为元
"client_ip" => '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
"subject" => 'Older Driver',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
"body" => '购买Older Driver',// 必须, 商品的描述信息
"success_url" => 'http://mall.devtiyushe.com/order/default/ali-pay-notify.html',// 必须, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
"return_url" => 'http://mall.devtiyushe.com/order/default/pay-return-url.html',
"time_expire" => '14',// 可选, 订单失效时间,单位是 分钟
"description" => '',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
];
try {
$url = $alipayDirect->charges($payData);
} catch (PayException $e) {
echo $e->errorMessage();
}
```
## 支付宝移动支付
移动支付的配置与上方相同。所有的支付宝支付,配置都只需要设置以上配置即可。以后对于配置就不在单独描述了。
直接上代码,说怎么调用
```php
$alipayMobile = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_ALIPAY);
$payData = [
"order_no" => 'F616699445072025',// 必须, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
"amount" => '0.01',// 必须, 订单总金额, 人民币为元
"client_ip" => '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
"subject" => 'Older Driver',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
"body" => '购买Older Driver',// 必须, 商品的描述信息
"success_url" => 'http://mall.devtiyushe.com/order/default/ali-pay-notify.html',// 必须, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
"time_expire" => '14',// 可选, 订单失效时间,单位是 分钟
"description" => '',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
];
try {
$reqArr = $alipayMobile->charges($data);// 调用该函数,会抛出 PayException 异常
var_dump($reqArr);
} catch (PayException $e) {
echo $e->errorMessage();
}
```
## 微信APP支付
当前微信支付仅支持APP支付。后期会陆续更新公众号支付。H5支付等功能。
进行微信支付的使用,首要的还是先进行配置。结构与支付宝基本差不多。
1. 打开 `src/Wxpay/WxConfig.php` 文件,可以根据自己微信的商户平台,找到对应的信息。
2. 把微信平台上相关的key下载后放入 `src/Wxpay/safekey` 文件夹中。当然这一步也可不做,当前微信没有几个接口在用他们提供的安全文件
通过两步配置完成,可以开始使用了。
```php
$appCharge = ChargeFactory::getInstance(ChargeChannel::CHANNEL_IS_WX);
$payData = [
"order_no" => 'F2016dd6dd1a23',// 必须, 商户订单号,适配每个渠道对此参数的要求,必须在商户系统内唯一
"amount" => '1',// 订单总金额, 人民币为元
"subject" => '测试即时到帐接口',// 必须, 商品的标题,该参数最长为 32 个 Unicode 字符
"body" => '即时到帐接口,就是爱支付',// 必须, 商品的描述信息
"client_ip" => '127.0.0.1',// 可选, 发起支付请求客户端的 IP 地址,格式为 IPV4
"success_url" => 'http://mall.tys.tiyushe.net/pay-test/notify.html',// 必须, 支付成功的回调地址 统一使用异步通知 该url后,不能带任何参数。
"time_expire" => '15',// 可选, 订单失效时间,单位是 分钟
"description" => '这是附带的业务数据',// 可选,如果用户请求时传递了该参数,则返回给商户时会回传该参数
];
try {
$reqArr = $appCharge->charges($data);// 调用该函数,会抛出 PayException 异常
var_dump($reqArr);
} catch (PayException $e) {
echo $e->errorMessage();
}
```
## 订单查询
详细代码还是可以看 `examples/query.php` 文件哈
```php
// 支付宝的回调
$payway = ChargeChannel::CHANNEL_IS_ALIPAY;
// 微信的回调
//$payway = ChargeChannel::CHANNEL_IS_WX;
$value = '1007570439201601142692427764';// 第三方交易号
$key = 'trade_no';// 可取值:out_trade_no:商户网站唯一订单号 trade_no: 第三方交易号
$api = TradeFactory::getInstance($payway);
try {
$data = $api->tradeQuery($value, $key);
/**
* 'subject' => '美团美食购买'// 商品标题
* 'body' => '购买蓉和小厨美食'// 商品描述
* 'amount' => '133400'// 支付的总金额,单位为分
* 'channel' => 'ali'// 支付通道 .此处可能值仅为: ali wx
* 'order_no' => '2016060504005139'// 商户唯一订单号
* 'buyer_id' => '2088122159801601'// 购买者识别码。支付宝为:购买者邮箱,或者手机号码。weiixn为唯一识别码
* 'trade_state' => 'SUCCESS'// 交易状态。SUCCESS—支付成功 REFUND—转入退款 NOTPAY—未支付
* 'transaction_id' => '2016060521001004600254528027'// 第三方的流水号
没有合适的资源?快使用搜索试试~ 我知道了~
支付宝支付微信支付接口php源码
共52个文件
php:44个
pem:4个
xml:1个
5星 · 超过95%的资源 需积分: 9 103 下载量 15 浏览量
2016-06-30
09:16:10
上传
评论 1
收藏 177KB RAR 举报
温馨提示
支付宝的即时到帐、移动支付、订单查询接口和 微信的APP支付、订单查询接口php源码
资源推荐
资源详情
资源评论
收起资源包目录
payment.rar (52个子文件)
composer.json 680B
phpunit.xml 557B
tests
bootstrap.php 78B
src
Common
ChargeChannel.php 588B
TradeInfoData.php 705B
TradeRefundData.php 499B
PayException.php 235B
Factory
TradeFactory.php 785B
ChargeFactory.php 1KB
Wxpay
WxPubPay.php 3KB
Helper
WxTradeType.php 383B
WxUnifiedOrder.php 6KB
WxTradeApi.php 6KB
safekey
apiclient_key.pem 138B
apiclient_cert.pem 73B
WxConfig.php 2KB
Data
WxBaseData.php 4KB
PayResultData.php 4KB
UnifiedOrderData.php 9KB
TradeQueryData.php 1KB
JSPayResultData.php 3KB
Contracts
BaseData.php 142B
DataStruct.php 1KB
PayNotifyInterface.php 433B
TradeApiInterface.php 878B
ChargeInterface.php 360B
Alipay
AlipayConfig.php 2KB
AlipayMobile.php 4KB
AliTradeApi.php 10KB
AlipayDirect.php 4KB
safekey
cacert.pem 247KB
alipay_public_key.pem 271B
Data
AliBaseData.php 5KB
MobileData.php 4KB
TradeQueryData.php 2KB
RefundFastPayData.php 5KB
PayBaseData.php 4KB
DirectData.php 4KB
NotifyData.php 2KB
Utils
DataParser.php 1KB
StrUtil.php 679B
Curl.php 6KB
ArrayUtil.php 2KB
RsaEncrypt.php 2KB
autoload.php 302B
examples
query.php 1KB
alicharge.php 2KB
notify.php 1KB
refund.php 1KB
wxcharge.php 2KB
.gitignore 89B
README.md 10KB
共 52 条
- 1
资源评论
- 乡村艺人2018-05-29运行还可以。
- wblf3862016-09-25运行还可以。
- plusnan2016-10-22运行还可以。
zcwlls
- 粉丝: 1
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功