更新记录
1.0.0(2026-04-17) 下载此版本
1.0.0 初步版本,未经测试很多,我看市场都收费,我就做了一个,只能用来调试支付宝沙箱使用,没有别的东西
平台兼容性
uni-app(4.0)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| - | - | - | - | - | - | - | - | - | - | - | - |
uni-app x(4.0)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| - | - | √ | - | - | - |
dsx-alipay-env
用于在 Android App 中通过 UTS 插件切换支付宝 SDK 到沙箱环境。
调用
import { switchAlipayToSandboxEnv } from "@/uni_modules/dsx-alipay-env";
const success = switchAlipayToSandboxEnv();
完整示例
下面示例演示在页面中先切换 Android 支付宝 SDK 到沙箱环境,再调用 uni.requestPayment 拉起支付。
<template>
<view class="page">
<button :disabled="paying" @tap="handlePay">
{{ paying ? "支付中..." : "发起支付宝支付" }}
</button>
</view>
</template>
<script setup lang="ts">
import { ref } from "vue";
import {
isAlipayEnvSwitchAvailable,
switchAlipayToSandboxEnv
} from "@/uni_modules/dsx-alipay-env";
/**
* 服务端返回的支付宝支付参数。
*/
type PaymentOrderResult = {
/**
* App 端支付串。
*/
orderInfo: string;
};
/**
* 当前是否处于支付中。
*/
const paying = ref(false);
/**
* 是否启用 Android 支付宝沙箱环境。
*
* 仅建议本地联调或测试环境开启,正式环境请改为 `false`。
*/
const useSandboxEnv = true;
/**
* 模拟获取服务端签名后的支付宝支付串。
* @returns 支付串结果
*/
async function fetchPaymentOrder(): Promise<PaymentOrderResult> {
return {
orderInfo: "这里替换成服务端返回的 orderInfo"
};
}
/**
* 在 Android App 中切换支付宝 SDK 到沙箱环境。
* @returns 是否切换成功
*/
function ensureSandboxEnv(): boolean {
// #ifdef APP-ANDROID
if (!useSandboxEnv) {
return false;
}
/**
* 当前运行环境是否支持切换支付宝环境。
*/
const available = isAlipayEnvSwitchAvailable();
if (!available) {
console.warn("[dsx-alipay-env] 当前环境不支持切换支付宝沙箱");
return false;
}
return switchAlipayToSandboxEnv();
// #endif
return false;
}
/**
* 发起支付宝支付。
*/
async function handlePay(): Promise<void> {
try {
paying.value = true;
/**
* 当前服务端返回的支付参数。
*/
const paymentOrder = await fetchPaymentOrder();
ensureSandboxEnv();
await new Promise<void>((resolve, reject) => {
uni.requestPayment({
provider: "alipay",
orderInfo: paymentOrder.orderInfo,
success() {
resolve();
},
fail(error) {
reject(error);
}
});
});
uni.showToast({ title: "支付发起成功", icon: "success" });
} catch (error) {
console.error("[dsx-alipay-env] handlePay", error);
uni.showToast({ title: "支付失败", icon: "none" });
} finally {
paying.value = false;
}
}
</script>
接入时建议按下面顺序处理:
- 服务端生成并返回支付宝签名后的
orderInfo - Android App 在
uni.requestPayment前调用switchAlipayToSandboxEnv() - 再执行
uni.requestPayment({ provider: "alipay", orderInfo })
注意:
- 仅 Android App 有效
- 需要在
uni.requestPayment前调用 - 正式环境不要开启沙箱模式

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 14
赞赏 0
下载 11578583
赞赏 1905
赞赏
京公网安备:11010802035340号