winwin/pay-sdk 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

winwin/pay-sdk

Composer 安装命令:

composer create-project winwin/pay-sdk

包简介

README 文档

README

安装

使用 composer:

$ composer require winwin/pay-sdk

配置

调用接口需要先创建 payment 对象:

use winwin\pay\sdk\Config;
use winwin\pay\sdk\payment\Payment;

$payment = new Payment(new Config([
    'appid' => $appid,
    'secret' => $secret,
]));

appid 和 secret 需要申请获取。

创建订单

use winwin\pay\sdk\payment\Order;

$result = $payment->prepare(new Order([
    'mch_id' => $merchant_id,
    'method' => 'pay.weixin.jsapi',
    'body' => '支付1分',
    'total_fee' => 1,
    'out_trade_no' => date('ymdHis') . mt_rand(1000, 9999),
    'notify_url' => 'http://example.org/notify',
    'openid' => $openid,
]));

mch_id 需要申请获取。

openid 需要网页授权获取,参考微信官方文档

处理支付异步通知

$response = $payment->handleNotify(function($notify, $successful) {
    // 处理逻辑
    return true;
});
echo $response->getBody();

handleNotify 接收一个回调函数,该回调函数接收两个参数,这两个参数分别为:

  • $notify 为封装了通知信息的数组对象,可以使用对象或者数组形式来读取通知内容,比如:$notify->total_fee 或者 $notify['total_fee']
  • $successful 用于判断用户是否付款成功了

回调函数返回 false 或者一个具体的错误消息,那么系统会在稍后再次继续通知你,直到你明确的告诉它:“我已经处理完成了”,在函数里 return true; 代表处理完成。

handleNotify 返回值 $response 是一个 PSR-7 Response 对象。

订单查询

use winwin\pay\sdk\payment\OrderQuery;

$result = $payment->query(new OrderQuery([
    'mch_id' => $merchant_id,
    'method' => 'trade.query',
    'transaction_id' => '平台订单号',
    'out_trade_no' => '商户订单号',
]));

关闭订单

use winwin\pay\sdk\payment\CloseOrder;

$result = $payment->close(new CloseOrder([
    'mch_id' => $merchant_id,
    'method' => 'trade.close',
    'out_trade_no' => '商户订单号',
]));

退款

use winwin\pay\sdk\payment\Refund;

$result = $payment->refund(new Refund([
    'mch_id' => $merchant_id,
    'method' => 'trade.refund',
    'transaction_id' => '平台订单号',
    'out_trade_no' => '商户订单号',
    'out_refund_no' => '商户退款单号',
    'total_fee' => 1,
    'refund_fee' => 1,
    'op_user_id' => $merchant_id,
]));

退款查询

use winwin\pay\sdk\payment\RefundQuery;

$result = $payment->queryRefund(new RefundQuery([
    'mch_id' => $merchant_id,
    'method' => 'trade.refund.query',
    'transaction_id' => '平台订单号',
    'out_trade_no' => '商户订单号',
    'out_refund_no' => '商户退款单号',
    'refund_id' => '平台退款单号',
]));

调试

如果需要打印 http 请求日志,可使用 PSR-3 实现库,例如 Monolog

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
$logger = new Logger('WinwinPay');
$logger->pushHandler(new StreamHandler('php://stderr', Logger::DEBUG));

$payment->setLogger($logger);

统计信息

  • 总下载量: 6.28k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 4
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2017-04-24

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固