johnxu/pay

There is no license information available for the latest version (v1.0.9) of this package.

payment package

v1.0.9 2018-06-11 02:57 UTC

This package is auto-updated.

Last update: 2024-05-12 18:11:49 UTC


README

  1. 首先保证安装好了composer,如果没有安装的可以前往安装快速通道
  2. 打开终端,输入:composer require johnxu/pay即可使用

配置文件

// 配置文件
$config = [
    'app_id'          => '', // 应用ID
    'api_url'         => 'https://openapi.alipaydev.com/gateway.do', // 这是沙箱的,如果是线上的填写 https://openapi.alipay.com/gateway.do
    'app_public_key'  => '', // RSA2公钥

    'app_private_key' => '', // RSA2私钥

    'ali_public_key'  => '', // 支付宝公钥

    'notify_url'      => '', // 异步通知地址,如: http://www.johnxu.net/return.php
    'return_url'      => '', // 同步通知地址,如: http://www.johnxu.net/return.php
];

调用支付方式

// 根据文档设置好业务参数
$business_param = [
    'out_trade_no' => date('YmdH:i:s'),
    'total_amount' => '0.01',
    'subject'      => '测试扫码支付',
    'body'         => '测试扫码支付的描述',
];

// 如果使用laravel 或 tp5直接return即可

// PC支付
Pay::alipay($config)->pay('web', $business_param);
// 扫码支付(返回二维码链接,用phpqrcode)生成二维码即可
$res = Pay::alipay($config)->pay('scan', $business_param);
var_dump($res);
// 当面付
Pay::alipay($config)->pay('face', $business_param);
// app支付
return Pay::alipay($config)->pay('app', $business_param);

即时转账

参考网址: 单笔转账

$business_param = [
    'out_biz_no' => date('YmdHis'), // 商户转账唯一订单号
    'payee_type' => 'ALIPAY_LOGONID', 
    //收款方账户类型
    // 1、ALIPAY_USERID:支付宝账号对应的支付宝唯一用户号。以2088开头的16位纯数字组成。 
    // 2、ALIPAY_LOGONID:支付宝登录号,支持邮箱和手机号格式。
    'payee_account' => 'sdfs@163.com', // 收款方账户
    'amount'     => '0.01', // 转账金额
];
$res = Pay::alipay($config)->pay('transfer', $business_param);

var_dump($res); // 打印结果

查询及时转账

参考网址: 查询转账订单接口

// 二者传一个即可
$business_param = [
    'out_biz_no' => '234214324', // 商户转账唯一订单号
    // 'order_id' => 'asdfs', // 支付宝转账单据号
];

$res = (new Transfer())->refund(Pay::alipay($config), $business_param);
var_dump($res); // 打印查询结果

统一收单交易退款接口

参考网址 统一收单交易退款接口

$business_param = [
    'out_trade_no'  => '', // 订单支付时传入的商户订单号
    // 'trade_no'   => '', // 支付宝交易号
    'refund_amount' => '0.01', // 需要退款的金额
];
$res = Pay::alipay($config)->refund($business_param);

var_dump($res);

统一收单交易退款查询

参考网址 统一收单交易退款查询

$business_param = [
    'out_trade_no'  => '', // 订单支付时传入的商户订单号
    // 'trade_no'   => '', // 支付宝交易号
    'refund_amount' => '0.01', // 需要退款的金额
];
$res = Pay::alipay($config)->refundQuery($business_param);

var_dump($res);

统一收单线下交易查询

参考网址 统一收单线下交易查询

$business_param = [
    'out_trade_no'  => '', // 订单支付时传入的商户订单号
    // 'trade_no'   => '', // 支付宝交易号
];
$res = Pay::alipay($config)->query($business_param);

var_dump($res);

统一收单交易关闭接口

参考网址 统一收单交易关闭接口

$business_param = [
    'out_trade_no'  => '', // 订单支付时传入的商户订单号
    // 'trade_no'   => '', // 支付宝交易号
];
$res = Pay::alipay($config)->close($business_param);

var_dump($res);

微信支付

配置文件如下

$config = [
    'appid'          => 'wx426b3015555a46be', // 微信appid(如果是小程序,那么就是小程序的id)
    'mch_id'         => '1900009851',
    'notify_url'     => 'http://pay.johnxu.net/notiry_url.php',
    'key'            => '8934e7d15453e97507ef794cf7b0519d',
    'api_uri'        => 'https://api.mch.weixin.qq.com',
    'apiclient_cert' => 'apiclient_cert.pem', // 证书路径(尽量写绝对路径)
    'apiclient_key'  => 'apiclient_key.pem', // 证书路径(尽量写绝对路径)
];

扫码支付

$business = [
    'out_trade_no' => date("YmdHis"),
    'total_fee'    => 1,
    'body'         => '支付测试',
];
print_r(Pay::wxpay($config)->pay('app', $business))

APP支付

print_r(Pay::wxpay($config)->pay('app', $business));
// {"appid":"wx426b3015555a46be","partnerid":"1900009851","prepayid":"wx2018032613390793349092c30094032721","noncestr":"vBURayiSZTlEaUvq","timestamp":1522042747,"package":"Sign=WXPay","sign":"0EDD2A627366FC5724F5EAD54F32A442"}

订单查询

print_r(Pay::wxpay($config)->query([
    'out_trade_no' => '20180326113409',
]));

撤销订单

// 需要证书
print_r(Pay::wxpay($config)->reverse([
    'out_trade_no' => '20180326113409',
]));

申请退款

// 需要证书
print_r(Pay::wxpay($config)->refund([
    'out_trade_no'  => '20180326113409', // 商户订单号
    'out_refund_no' => date('YmdHis'), // 退款订单号
    'total_fee'     => 1, // 总金额
    'refund_fee'    => 1, // 退款金额
]));

退款查询

// 下面四个参数随便选个一即可
print_r(Pay::wxpay($config)->queryRefund([
    'out_trade_no'      => '20180326113409', // 商户订单号
    // 'transaction_id' => '', // 微信订单号
    // 'out_refund_no'  => '', // 商户退款单号
    // 'refund_id'      => '', // 微信退款单号
]));

关闭订单

// 关闭订单只能用商户订单号
print_r(Pay::wxpay($config)->close([
    'out_trade_no' => '20180326113409',
]));

异步通知

$res = Pay::wxpay($config)->verify();

if ($res) {
    print_r($res);
} else {
    echo '异步验证失败';
}

echo 'SUCCESS';

微信小程序支付

$res = Pay::wxpay($config)->pay('mini', $business);

// 这里返回的是一个json格式的字符串