Parcourir la source

跨境商品支付接入

kevin il y a 1 an
Parent
commit
631dce9e03

+ 4 - 12
common/models/forms/ApproachOrderForm.php

@@ -160,7 +160,7 @@ class ApproachOrderForm extends Model
      */
      */
     public function isPayType($attribute)
     public function isPayType($attribute)
     {
     {
-        if (!in_array($this->payType, array_keys(ShopGoods::ONLINE_PAY))) {
+        if (!in_array($this->payType, array_values(ShopGoods::BANK_CODE))) {
             $this->addError('支付方式错误');
             $this->addError('支付方式错误');
         }
         }
 
 
@@ -197,16 +197,8 @@ class ApproachOrderForm extends Model
 
 
         LoggerTool::info([$this->sn, $this->note]);
         LoggerTool::info([$this->sn, $this->note]);
 
 
-        // 调用iPay88支付校验
-//        LoggerTool::info([$this->note['reference'], $this->note]);
-//        $payload = IPay88::transactionVerify($this->note['reference']);
-//        LoggerTool::info($payload);
-//        if ($payload['status'] !== true) {
-//            throw new Exception(Form::formatErrorsForApi($payload['message']));
-//        }
-//        if ($payload['data']['amount'] != $this->_model->PAY_AMOUNT * 100) {
-//            throw new Exception(Form::formatErrorsForApi('支付金额与订单金额不符'));
-//        }
+        // TODO: 支付校验
+
 
 
         $db = \Yii::$app->db;
         $db = \Yii::$app->db;
         $transaction = $db->beginTransaction();
         $transaction = $db->beginTransaction();
@@ -227,7 +219,7 @@ class ApproachOrderForm extends Model
             OrderGoods::batchInsert($approachOrderGoods);
             OrderGoods::batchInsert($approachOrderGoods);
 
 
             // 删除中间表
             // 删除中间表
-            ApproachOrder::deleteAll('SN = :SN', [':SN' => $this->sn]);
+            ApproachOrder::deleteAll('SN=:SN', [':SN' => $this->sn]);
             ApproachOrderGoods::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
             ApproachOrderGoods::deleteAll('ORDER_SN = :ORDER_SN', [':ORDER_SN' => $this->sn]);
 
 
             $transaction->commit();
             $transaction->commit();

+ 11 - 7
frontendApi/modules/v1/controllers/ShopController.php

@@ -294,6 +294,11 @@ class ShopController extends BaseController {
     public function actionSureApproachOrder(){
     public function actionSureApproachOrder(){
         if (\Yii::$app->request->isPost) {
         if (\Yii::$app->request->isPost) {
             $post = \Yii::$app->request->post();
             $post = \Yii::$app->request->post();
+            // 银行代码
+            $bankCode = $post['payType'];
+            // 支付宝WAP/正扫 -> 支付宝支付; 微信WAP/正扫 -> 微信支付
+            $post['payType'] = ShopGoods::getBankCode($bankCode);
+
             $formModel = new ApproachOrderForm();
             $formModel = new ApproachOrderForm();
             $formModel->scenario = 'userOrder';
             $formModel->scenario = 'userOrder';
             $formModel->remark = '复销备注';
             $formModel->remark = '复销备注';
@@ -304,15 +309,15 @@ class ShopController extends BaseController {
                 $orderProducts = ApproachOrderGoods::findOneAsArray(['ORDER_SN' => $order->SN]);
                 $orderProducts = ApproachOrderGoods::findOneAsArray(['ORDER_SN' => $order->SN]);
                 // 支付报文
                 // 支付报文
                 $payload = [
                 $payload = [
-                    "version" => "2.0.0",   // 版本号.定值2.0.0
-                    "trade_code" => "PAY",  // 交易代码
-                    "bank_code" => $post['payType'], // 银行代码
+                    "version" => "2.0.0",   // 版本号(定值2.0.0).
+                    "trade_code" => "PAY",  // 交易代码(定值PAY)
+                    "bank_code" => $bankCode, // 银行代码
                     "agencyId" => \Yii::$app->params['UPOP']['agencyId'], // 商户号
                     "agencyId" => \Yii::$app->params['UPOP']['agencyId'], // 商户号
                     "child_merchant_no" => \Yii::$app->params['UPOP']['childMerchantId'], // 子商户号
                     "child_merchant_no" => \Yii::$app->params['UPOP']['childMerchantId'], // 子商户号
                     "terminal_no" => \Yii::$app->params['UPOP']['terminalId'], // 商户终端号
                     "terminal_no" => \Yii::$app->params['UPOP']['terminalId'], // 商户终端号
                     "order_no" => $order->SN . mt_rand(0, 10000000),   // 第三方订单号
                     "order_no" => $order->SN . mt_rand(0, 10000000),   // 第三方订单号
 //                    "amount" => number_format($order['PAY_AMOUNT'], 2),   // 交易金额(元) 2位小数
 //                    "amount" => number_format($order['PAY_AMOUNT'], 2),   // 交易金额(元) 2位小数
-                    "amount" => number_format('0.01', 2),   // 交易金额(元) 2位小数
+                    "amount" => number_format('0.01', 2),   // TODO: 交易金额(元) 2位小数
                     "currency_type" => "HKD",   // 交易币种 HKD(港币)
                     "currency_type" => "HKD",   // 交易币种 HKD(港币)
                     "sett_currency_type" => "HKD",  // 清算币种 HKD(港币)
                     "sett_currency_type" => "HKD",  // 清算币种 HKD(港币)
                     "product_name" => $orderProducts['GOODS_TITLE'], // 产品名称
                     "product_name" => $orderProducts['GOODS_TITLE'], // 产品名称
@@ -323,7 +328,7 @@ class ShopController extends BaseController {
                 // 预支付
                 // 预支付
                 $response = (new PaySign())->sendEncodeData($payload, \Yii::$app->params['UPOP']['backPayUrl']);
                 $response = (new PaySign())->sendEncodeData($payload, \Yii::$app->params['UPOP']['backPayUrl']);
                 // 预支付结果写入表
                 // 预支付结果写入表
-                ApproachOrder::updateAll(['REMARK' => json_encode($response['pay'] = ShopGoods::getBankCode($post['payType']))], 'SN=:SN', [':SN' => $order->SN]);
+                ApproachOrder::updateAll(['REMARK' => json_encode($response['bank_code'] = $bankCode)], 'SN=:SN', [':SN' => $order->SN]);
 
 
                 return static::notice($response);
                 return static::notice($response);
             } else {
             } else {
@@ -741,8 +746,7 @@ class ShopController extends BaseController {
             "child_merchant_no" => \Yii::$app->params['UPOP']['childMerchantId'], // 子商户号
             "child_merchant_no" => \Yii::$app->params['UPOP']['childMerchantId'], // 子商户号
             "terminal_no" => \Yii::$app->params['UPOP']['terminalId'], // 商户终端号
             "terminal_no" => \Yii::$app->params['UPOP']['terminalId'], // 商户终端号
             "order_no" => $refNo . mt_rand(0, 10000000),   // 第三方订单号
             "order_no" => $refNo . mt_rand(0, 10000000),   // 第三方订单号
-//            "amount" => number_format($order['PAY_AMOUNT'], 2),   // 交易金额(元) 2位小数
-            "amount" => number_format("1.01", 2),   // 交易金额(元) 2位小数
+            "amount" => number_format($order['PAY_AMOUNT'], 2),   // 交易金额(元) 2位小数
             "currency_type" => "HKD",   // 交易币种 HKD(港币)
             "currency_type" => "HKD",   // 交易币种 HKD(港币)
             "sett_currency_type" => "HKD",  // 清算币种 HKD(港币)
             "sett_currency_type" => "HKD",  // 清算币种 HKD(港币)
             "product_name" => $orderProducts['GOODS_TITLE'], // 产品名称
             "product_name" => $orderProducts['GOODS_TITLE'], // 产品名称