$config = array(
'appid' => '', // Укажите app id для расширенных вызовов функций
'appsecret' => '', // Укажите app secret для расширенных вызовов функций
'mchid' => '', // ID мерчанта
'key' => '', // Укажите ключ, который вы установили
'sslcert_path' => '/ваш/путь/cert/wechatpay/apiclient_cert.pem',
'sslkey_path' => '/ваш/путь/cert/wechatpay/apiclient_key.pem',
'transfer_rsa_public_path' => '/ваш/путь/cert/wechatpay/rsa_public.pem', // Путь к сертификату RSA публичного ключа для корпоративных переводов на банковскую карту
);
Публичный аккаунт
$wechatpay = new \JiaLeo\Payment\Wechatpay\MpPay($config);
App
$wechatpay = new \JiaLeo\Payment\Wechatpay\AppPay($config);
H5
$wechatpay = new \JiaLeo\Payment\Wechatpay\H5Pay($config);
Native
$wechatpay = new \JiaLeo\Payment\Wechatpay\NativePay($config);
Пример кода:
if ($data['device'] == 'mp') {
$wechatpay = new \JiaLeo\Payment\Wechatpay\MpPay($config);
} elseif ($data['device'] == 'app') {
$wechatpay = new \JiaLeo\Payment\Wechatpay\AppPay($config);
} elseif ($data['device'] == 'h5') {
$wechatpay = new \JiaLeo\Payment\Wechatpay\H5Pay($config);
} elseif ($data['device'] == 'native') {
$wechatpay = new \JiaLeo\Payment\Wechatpay\NativePay($config);
}
$out_trade_no = date('YmdHis') . rand(10000, 99999);
$pay_data = [
'body' => $data['body'], // Описание товара
'attach' => $wechatpay->setPassbackParams($return_params), // Данные от продавца
'out_trade_no' => $out_trade_no, // Номер заказа мерчанта
'total_fee' => $data['amount'], // Сумма платежа (единица измерения: центы)
'openid' => $openid,
'notify_url' => 'http://domain/api/wechatpay/notifies/' . $data['device'] // Адрес обратного вызова сервера
];
$url = $wechatpay->handle($pay_data);
Метод MpPay
и AppPay
возвращают URL с подписью, которую можно передать клиенту.
Метод H5Pay
возвращает URL от WeChat, требует дополнительной переадресации и указания адреса перехода после завершения платежа.
Метод NativePay
возвращает URL для платежей WeChat, который можно преобразовать в QR-код с помощью сторонней библиотеки.
Пример кода:
$wechatpay = new \JiaLeo\Payment\Wechatpay\Notify($config);
try {
// Проверка подписи
$data = $wechatpay->handle();
$wechatpay->returnSuccess();
$result = true;
} catch (\Exception $e) {
$error_msg = $e->getMessage();
$wechatpay->returnFailure($error_msg);
}
Пример кода:
$wechatpay_refund = new \JiaLeo\Payment\Wechatpay\Refund($config);
$out_refund_no = date('YmdHis') . rand(10000, 99999);
// Возврат средств на тот же счет
$refund_data = [
'out_refund_no' => $out_refund_no, // Номер возврата мерчанта
'total_fee' => $amount, // Сумма оригинального заказа (единица измерения: центы)
'refund_fee' => $refund_amount, // Сумма возврата (единица измерения: центы)
'out_trade_no' => $out_trade_no // Номер заказа мерчанта
];
$wechatpay_refund->handle($refund_data);
Пример кода:
$config = config('payment.wechatpay.mp');
$payment = new \JiaLeo\Payment\Wechatpay\Transfer($config);
$params = array(
'partner_trade_no' => time() . rand(10000, 99999), // Номер заказа партнера
'openid' => 'oErxPsxn6XTQQyFzauQW9qZYtI_k', // openid
'amount' => 100, // Сумма перевода (единица измерения: центы)
'desc' => 'Тестовый перевод', // Примечание
//'check_name' => true // Проверка имени
);
$res = $payment->handle($params);
if (!$res) {
var_dump($payment->errorCode, $payment->errorCodeDes);
}
var_dump($res);
$config = config('payment.wechatpay.che');
$wechatpay = new \JiaLeo\Payment\Wechatpay\Tools($config);
$url = $wechatpay->getPublicKey();
var_dump($url['pub_key']);
openssl rsa -RSAPublicKey_in -in <filename> -pubout
Замена содержимого оригинального сертификата
$config = config('payment.wechatpay.che');
$wechatpay = new \JiaLeo\Payment\Wechatpay\Transfer($config);
$data = array(
'partner_trade_no' => time(),
'amount' => 100,
'bank_no' => '62148312XXXXXX',
'true_name' => 'XXX',
'bank_code' => '1001',
'desc' => 'test',
);
var_dump($wechatpay->handleToBank($data));
Обычные подарочные деньги:
$config = config('payment.wechatpay.mp');
$payment = new \JiaLeo\Payment\Wechatpay\RedPack($config);
$params = array(
'mch_billno' => time() . rand(10000, 99999),
'send_name' => '汉字科技',
'openid' => 'oErxPsxn6XTQQyFzauQW9qZYtI_k',
'wishing' => '汉字科技恭喜发财',
'act_name' => '汉子科技哈哈',
'remark' => '备注',
'total_amount' => 300
);
$res = $payment->sendRedPack($params);
if (!$res) {
dump($payment->errorCode, $payment->errorCodeDes);
}
dump($res);
Разделенные подарочные деньги:
$config = config('payment.wechatpay.mp');
$payment = new \JiaLeo\Payment\Wechatpay\RedPack($config);
$params = array(
'mch_billno' => time() . rand(10000, 99999),
'send_name' => '汉字科技',
'openid' => 'oErxPsxn6XTQQyFzauQW9qZYtI_k',
'wishing' => '汉字科技恭喜发财',
'act_name' => '汉子科技哈哈',
'remark' => '备注',
'total_amount' => 300,
'total_num' => 3
);
$res = $payment->sendGroupRedPack($params);
if (!$res) {
dump($payment->errorCode, $payment->errorCodeDes);
}
dump($res);
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )