uni-app 整合Stripe支付

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app 整合Stripe支付

开发环境 版本号 项目创建方式
  • 整合Stripe支付,iOS和Android,需要支持Apple Pay和Google Pay.
2 回复

有stripe原生插件,google map 原生插件 FB 登录分享 原生插件 FCM推送 需要的联系, Q:592944557


在uni-app中整合Stripe支付,通常需要借助Stripe提供的JavaScript库来实现支付功能。由于uni-app支持使用Vue.js语法,并可以编译到多个平台(如H5、小程序、App等),以下是一个基于H5平台的示例代码,展示如何在uni-app中整合Stripe支付。请注意,小程序平台可能不支持直接调用Stripe的JavaScript库,需要借助服务器端进行支付操作。

首先,确保你已经在Stripe官网注册并获取了API密钥。

  1. 安装Stripe的JavaScript库

在uni-app项目的pages/index/index.vue文件中,通过CDN方式引入Stripe的JavaScript库:

<template>
  <view>
    <!-- 支付按钮 -->
    <button @click="initiatePayment">支付</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      stripe: null,
    };
  },
  mounted() {
    // 引入Stripe库
    const script = document.createElement('script');
    script.src = 'https://js.stripe.com/v3/';
    script.async = true;
    script.onload = () => {
      this.stripe = Stripe('你的Stripe公钥'); // 替换为你的Stripe公钥
    };
    document.body.appendChild(script);
  },
  methods: {
    async initiatePayment() {
      const elements = this.stripe.elements();
      const card = elements.create('card');
      card.mount('#card-element'); // 需要在模板中添加一个div,id为card-element

      const { paymentMethod, error } = await this.stripe.createPaymentMethod(
        'card',
        card,
        {
          billing_details: { name: 'John Doe' },
        }
      );

      if (error) {
        console.error('Error creating payment method:', error);
      } else {
        // 发送paymentMethod.id到你的服务器以完成支付
        const response = await fetch('/your-server-endpoint', {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({ paymentMethodId: paymentMethod.id }),
        });

        if (response.ok) {
          const result = await response.json();
          // 处理支付成功的结果
          console.log('支付成功:', result);
        } else {
          console.error('支付失败');
        }
      }
    },
  },
};
</script>

<style scoped>
/* 添加样式以显示卡输入元素 */
#card-element {
  margin: 20px 0;
  padding: 20px;
  border: 1px solid #ccc;
  border-radius: 4px;
}
</style>

注意:

  • mounted生命周期钩子中动态加载Stripe库。
  • 创建一个card元素并挂载到模板中的某个div上。
  • 使用stripe.createPaymentMethod方法创建支付方式。
  • paymentMethod.id发送到你的服务器以完成支付处理。
  • 确保你的服务器端能够处理Stripe支付,并返回相应的结果。

请根据你的具体需求调整代码,并确保在生产环境中使用安全的API密钥管理方式。

回到顶部