|
|
@@ -1,6 +1,6 @@
|
|
|
<?php
|
|
|
-namespace crmeb\payment;
|
|
|
|
|
|
+namespace tw\services\payment;
|
|
|
|
|
|
use \Yurun\PaySDK\Weixin\Params\PublicParams;
|
|
|
use \Yurun\PaySDK\Weixin\CompanyPay\Weixin\Pay\Request;
|
|
|
@@ -9,49 +9,51 @@ use \Yurun\PaySDK\Weixin\SDK; // TODO: update to V3
|
|
|
use crmeb\services\SystemConfigService;
|
|
|
use EasyWeChat\Core\Exception;
|
|
|
use \think\facade\Config;
|
|
|
+
|
|
|
/**
|
|
|
* 企业付款
|
|
|
*
|
|
|
* 包含微信/支付宝等付款到零钱,付款到银行卡
|
|
|
*/
|
|
|
-class MachantPay {
|
|
|
+class MachantPay
|
|
|
+{
|
|
|
|
|
|
const BANK_MAP = [
|
|
|
'工商银行' => '1002',
|
|
|
- '农业银行' => '1005',
|
|
|
- '建设银行' => '1003',
|
|
|
- '中国银行' => '1026',
|
|
|
- '交通银行' => '1020',
|
|
|
- '招商银行' => '1001',
|
|
|
- '邮储银行' => '1066',
|
|
|
- '民生银行' => '1006',
|
|
|
- '平安银行' => '1010',
|
|
|
- '中信银行' => '1021',
|
|
|
- '浦发银行' => '1004',
|
|
|
- '兴业银行' => '1009',
|
|
|
- '光大银行' => '1022',
|
|
|
- '广发银行' => '1027',
|
|
|
- '华夏银行' => '1025',
|
|
|
- '中原银行' => '4753',
|
|
|
+ '农业银行' => '1005',
|
|
|
+ '建设银行' => '1003',
|
|
|
+ '中国银行' => '1026',
|
|
|
+ '交通银行' => '1020',
|
|
|
+ '招商银行' => '1001',
|
|
|
+ '邮储银行' => '1066',
|
|
|
+ '民生银行' => '1006',
|
|
|
+ '平安银行' => '1010',
|
|
|
+ '中信银行' => '1021',
|
|
|
+ '浦发银行' => '1004',
|
|
|
+ '兴业银行' => '1009',
|
|
|
+ '光大银行' => '1022',
|
|
|
+ '广发银行' => '1027',
|
|
|
+ '华夏银行' => '1025',
|
|
|
+ '中原银行' => '4753',
|
|
|
'河南省农村信用社' => '4115',
|
|
|
'山西省农村信用社' => '4156',
|
|
|
'安徽省农村信用社' => '4166',
|
|
|
];
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* 获得微信支付-付款到零钱/银行卡 API 用到的参数
|
|
|
*
|
|
|
* DEPENDENCIES: 数据库读取
|
|
|
*/
|
|
|
- protected static function getWeixinParams()
|
|
|
+ protected static function getWeixinParams()
|
|
|
{
|
|
|
// 读取配置
|
|
|
$payment = SystemConfigService::more([
|
|
|
'pay_routine_appid',
|
|
|
- 'pay_routine_mchid',
|
|
|
- 'pay_routine_key',
|
|
|
- 'pay_routine_client_cert',
|
|
|
- 'pay_routine_client_key',
|
|
|
+ 'pay_routine_mchid',
|
|
|
+ 'pay_routine_key',
|
|
|
+ 'pay_routine_client_cert',
|
|
|
+ 'pay_routine_client_key',
|
|
|
'pay_weixin_open',
|
|
|
]);
|
|
|
|
|
|
@@ -86,7 +88,7 @@ class MachantPay {
|
|
|
* TODO: 微信付款升级为 V3(https://wechatpay-api.gitbook.io/wechatpay-api-v3/wei-xin-zhi-fu-api-v3-jie-kou-gui-fan)
|
|
|
* 本功能使用 Yurunsoft/PaySDK 也已支持 V3 (2021/11/28),但申请微信支付时未申请微信 V3 相关 Key。等待升级使用 V3 协议,或再做一个函数
|
|
|
*/
|
|
|
- public static function toWeixin($openid, $trade_no, $amount, $desc='', $realname='')
|
|
|
+ public static function toWeixin($openid, $trade_no, $amount, $desc = '', $realname = '')
|
|
|
{
|
|
|
try {
|
|
|
$caller_ip = Config::get('app.server_ip', '127.0.0.1');
|
|
|
@@ -102,7 +104,7 @@ class MachantPay {
|
|
|
$req->spbill_create_ip = $caller_ip; // 调用接口的机器IP, 这个可能微信用于验证
|
|
|
|
|
|
$res = $sdk->execute($req);
|
|
|
-
|
|
|
+
|
|
|
if (!$sdk->checkResult($res)) {
|
|
|
$err = $sdk->getError($res);
|
|
|
errlog("toWeixin(): error=$err openid=$openid amount=$amount");
|
|
|
@@ -160,7 +162,7 @@ class MachantPay {
|
|
|
* @param string $bank_code: 银行名称,内部转为银行代码(微信平台官方定义 https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_4)
|
|
|
* @param string $desc: 描述,会通过银行收到
|
|
|
*/
|
|
|
- public static function toBankByWeixin($trade_no, $amount, $bank_no, $true_name, $bank_name, $desc='')
|
|
|
+ public static function toBankByWeixin($trade_no, $amount, $bank_no, $true_name, $bank_name, $desc = '')
|
|
|
{
|
|
|
try {
|
|
|
$params = self::getWeixinParams();
|
|
|
@@ -173,7 +175,7 @@ class MachantPay {
|
|
|
$req->enc_bank_no = $bank_no;
|
|
|
$req->enc_true_name = $true_name;
|
|
|
|
|
|
- $bank_code = self::BANK_MAP[$bank_name]??'';
|
|
|
+ $bank_code = self::BANK_MAP[$bank_name] ?? '';
|
|
|
if (!$bank_code) {
|
|
|
return [false, 100403, '不支持的银行'];
|
|
|
}
|
|
|
@@ -216,7 +218,7 @@ class MachantPay {
|
|
|
$req = new \Yurun\PaySDK\Weixin\GetPublicKey\Request();
|
|
|
$res = $sdk->execute($req);
|
|
|
var_dump($res);
|
|
|
- } catch(\Exception $e) {
|
|
|
+ } catch (\Exception $e) {
|
|
|
var_dump($e->getMessage());
|
|
|
}
|
|
|
}
|
|
|
@@ -224,16 +226,14 @@ class MachantPay {
|
|
|
/**
|
|
|
* 付款到支付宝
|
|
|
*/
|
|
|
- public static function toAlipay()
|
|
|
+ public static function toAlipay()
|
|
|
{
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 通过支付宝付款到银行卡
|
|
|
*/
|
|
|
- public static function toBankByAlipay()
|
|
|
+ public static function toBankByAlipay()
|
|
|
{
|
|
|
-
|
|
|
}
|
|
|
-}
|
|
|
+}
|