Explorar o código

Merge pull request #172 from tron/lock/release-2.11.0/KIP-10653

feat(KIP-10428): Ali Alipay Mini-Program |支付接口以及联调
John-Hong %!s(int64=2) %!d(string=hai) anos
pai
achega
dd0234473d
Modificáronse 2 ficheiros con 26 adicións e 7 borrados
  1. 20 7
      src/pages/parkingFee/mixins/parkingFeeDetail.js
  2. 6 0
      src/utils/index.js

+ 20 - 7
src/pages/parkingFee/mixins/parkingFeeDetail.js

@@ -4,7 +4,7 @@ import log from '@/utils/log.js';
 import { compare } from '@/utils/location.js';
 import uni from '@/utils/uniHooks';
 import { initWxJsSdkConfig } from '@/utils/login';
-import { getAppIdByGroupIdAndMallId, getIsWxh5, getPlatform } from '@/utils';
+import { getAppIdByGroupIdAndMallId, getIsWxh5, getPlatform, isAlipay } from '@/utils';
 import { Dialog, Toast } from 'vant';
 import { ordersAndPrepay } from '@/api/parking';
 // import checkOutResponse from '@/api/mockData/checkout.hz.response'
@@ -262,6 +262,7 @@ export default {
     },
     kerryPayment(session = '011cad54-735f-4e92-8f1b-f22bdfe073cd', payParams) {
       const platform = getPlatform();
+      console.log('platform:::', platform)
       let appId = uni.getStorageSync('appid');
       let openId = uni.getStorageSync('openid') || this.openid;
       if (platform === 'miniprogram') {
@@ -269,11 +270,13 @@ export default {
         // appId = 'wxd830fe4d1e04988e';
         appId = this.appId;
       }
+      console.log('支付宝::', isAlipay())
       const params = {
         region: 'cn',
-        payChannel: 'OFFICIAL_ACCOUNT',
+        payChannel: isAlipay() ? 'MINI_PROGRAM' : 'OFFICIAL_ACCOUNT',
         // payChannel: 'MOBILE_WEB',
-        payOption: 'WECHATPAY',
+
+        payOption: isAlipay() ? 'ALIPAY' : 'WECHATPAY',
         appId: appId,
         // openId: 'oudWQ5SCDElfn-IQH6eBR5JesOz4', // 下的appid: wxd830fe4d1e04988e
         openId,
@@ -293,6 +296,7 @@ export default {
           // console.log(1795, res);
           if (res.data?.code == '000000') {
             const prepayJson = res.data.data.params;
+            console.log('prepayJson::', res.data)
             const platform = getPlatform();
             this.isPay = true
             // TODO: h5环境判断
@@ -315,16 +319,25 @@ export default {
                 this.reCreateParkOrder();
               }
             } else {
-              window.toWXSendMsg({
-                type: 'openWxPay',
-                options: {
+              let options = {}
+              if (isAlipay()) {
+                options = {
+                  provider: 'alipay',
+                  orderInfo: prepayJson.trade_no,
+                }
+              } else {
+                options = {
                   provider: 'wxpay',
                   timeStamp: prepayJson.timeStamp,
                   nonceStr: prepayJson.nonceStr,
                   package: prepayJson.package,
                   signType: prepayJson.signType,
                   paySign: prepayJson.paySign,
-                },
+                }
+              }
+              window.toWXSendMsg({
+                type: 'openWxPay',
+                options: options,
               });
               window.subscribe('wxPayOver', (options) => {
                 // this.Toastloading.clear();

+ 6 - 0
src/utils/index.js

@@ -69,6 +69,11 @@ export function getPlatform() {
   return 'miniprogram'; // TODO: 上线前改为其他
 }
 
+// 是否是支付宝
+export function isAlipay() {
+  const userAgent = navigator.userAgent.toLowerCase();
+  return /alipayclient/g.test(userAgent)
+}
 // 是否在微信小程序中运行
 export function getIsMin() {
   const platform = getPlatform();
@@ -81,6 +86,7 @@ export function getIsWxh5() {
   return platform === 'micromessenger';
 }
 
+
 // 获取appid
 export function getAppIdByGroupIdAndMallId( {groupId,mallId,type} ) {
   const platform = getPlatform();