服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#实现Stripe支付的方法实践

C#实现Stripe支付的方法实践

2022-12-29 13:46新鑫S C#

本文主要介绍了C#实现Stripe支付的方法实践,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

Stripe支付首页需要引用Stripe.net框架,我引用的是22.8.0版本,注意.NETFramework的版本为4.5,同时需要引用Newtonsoft.Json(版本不能低于9.0.1)和System.Collections.Immutable(版本不低于1.5.0)。

C#实现Stripe支付的方法实践

一、前端JS代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<script src="https://js.stripe.com/v3/"></script>
<script src="https://checkout.stripe.com/checkout.js"></script>
<script type="text/javascript">
    //Stripe支付
    var myStripe = {
        testKey: '<%=ConfigurationManager.AppSettings["pk_liveConfig"] %>', //配置文件中的key 这个从Stripe中取,我就不截图展示了
        logoImg: "https://stripe.com/img/documentation/checkout/marketplace.png", //抬头的Logo
        //换卡
        changeHandler: function (f) {
            return StripeButton.configure({
                key: this.testKey,
                image: f.logoImg || this.logoImg,
                name: f.title || 'Update Card Detail',
                panelLabel: f.button || 'Submit',
                allowRememberMe: false,
                locale: 'auto',
                dataKey: this.testKey,
                token: function (token) {
                    f.email = token.email;
                    f.tokenId = token.id;
                    f.callback(f);
                }
            });
        },
        payHandler: function (f) {
            layer.closeAll(0);
            return StripeCheckout.configure({
                key: this.testKey,
                name: f.title || 'Stripe费用',
                email: f.Email || '',
                currency: f.currency || 'zxx',
                amount: f.amount || 0,
                allowRememberMe: false,
                image: f.logoImg || this.logoImg,
                locale: 'auto',
                token: function (token) {
                    f.tokenId = token.id;
                    f.email = token.email;
                    f.callback(f);
                }
            });
        },
        changeCard: function (f) {
            this.changeHandler(f).open();
        },
        pay: function (f) {
            this.payHandler(f).open();
        },
        SendMsg: function (uid) {
            var message = {};
            message.action = "noticeMember";
            message.code = 1;
            message.uid = uid;
            message.msg = "<div>已有用户购买了该照片!</div>";
            socketApi.sendMessage(message);
        }
    }
    myStripe.pay({
        title: 'TEST',
        currency: 'USD',//币种:美元(USD)、人民币(CNY)、港币(HKD)
        amount: <%=Convert.ToInt32(acoumt) %> * 100,//金额
        callback: function (p) {
            $.ajax({
                type: 'POST',
                dataType: 'text',
                url: '/admin/ajax/PCBAOrdersData.ashx',
                data: 'param=Pay&email=' + this.email + "&amount=" + this.amount + "&tokenId=" + this.tokenId,
                success: function (data) {
                    if (data == "succeeded") {
                        location.href = "";//支付成功,跳转页面
                    } else {
                        layer.msg(data);
                    }
                },
                error: function () {
                }
            })
        }
    });
</script>

效果如图所示:

C#实现Stripe支付的方法实践

二、后端C#代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/// <summary>
/// Stripe支付
/// </summary>
public void Pay()
{
    string Msg = "Payment Failure";
    try
    {
        string tokenId = _Request.GetString("tokenId", "");
        string amount = _Request.GetString("amount", "0");
        string email = _Request.GetString("email", "");
        Stripe.StripeConfiguration.SetApiKey(ConfigurationManager.AppSettings["pk_liveSecretKey"]);
 
        var options = new Stripe.ChargeCreateOptions
        {
            Amount = Convert.ToInt64(amount),
            Currency = "USD",//币种:美元(USD)、人民币(CNY)、港币(HKD)
            SourceId = tokenId,
            Description = "Stripe支付",//说明
            ReceiptEmail = email,
        };
        var service = new Stripe.ChargeService();
        Stripe.Charge charge = service.Create(options);
        Msg = charge.Status;
    }
    catch (Exception e)
    {
        Msg = e.Message;
        throw e;
    }
    finally
    {
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.Write(Msg);
        HttpContext.Current.Response.End();
    }
}

三、配置文件代码如下:

?
1
2
3
4
<appSettings>
    <add key="pk_liveConfig" value="pk_test_XXXXXX"/><!--stripe账号公钥-->
    <add key="pk_liveSecretKey" value="sk_test_XXXXXX"/><!--stripe账号Secret key-->
</appSettings>

Stripe支付的流程就是点击支付按钮就调用myStripe.pay函数去生成token,然后调用callback方法执行后台代码,返回succeeded就是支付成功了

到此这篇关于C#实现Stripe支付的方法实践的文章就介绍到这了,更多相关C# Stripe支付内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/weixin_44547599/article/details/122886515

延伸 · 阅读

精彩推荐
  • C#给 c# 程序员的十个重要提示

    给 c# 程序员的十个重要提示

    这篇文章主要介绍了给 c# 程序员的十个重要提示,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下...

    张志敏4792022-11-02
  • C#C#创建数据库及导入sql脚本的方法

    C#创建数据库及导入sql脚本的方法

    这篇文章主要介绍了C#创建数据库及导入sql脚本的方法,涉及C#针对数据库的创建、连接、导入等相关操作技巧,需要的朋友可以参考下...

    思齐_4412021-11-05
  • C#详解C#批量插入数据到Sqlserver中的四种方式

    详解C#批量插入数据到Sqlserver中的四种方式

    本文主要讲解一下在Sqlserver中批量插入数据。文中大数据批量插入方式一和方式四尽量避免使用,而方式二和方式三都是非常高效的批量插入数据方式,需...

    邹琼俊8012021-12-14
  • C#C#删除只读文件或文件夹(解决File.Delete无法删除文件)

    C#删除只读文件或文件夹(解决File.Delete无法删除文件)

    这篇文章主要介绍了C#删除只读文件或文件夹(解决File.Delete无法删除文件),需要的朋友可以参考下...

    99re6792021-10-26
  • C#C#逆变与协变详解

    C#逆变与协变详解

    这篇文章主要为大家详细介绍了C#逆变与协变的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    DW03910532022-01-21
  • C#C#实现组合排列的方法

    C#实现组合排列的方法

    这篇文章主要介绍了C#实现组合排列的方法的相关资料,并附实例代码,需要的朋友可以参考下...

    C#教程网6582021-12-09
  • C#C#编写网游客户端的实现

    C#编写网游客户端的实现

    本文主要介绍了C#编写网游客户端,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    Baker_Streets12022022-12-09
  • C#C#如何用ThoughtWorks生成二维码

    C#如何用ThoughtWorks生成二维码

    这篇文章主要介绍了C#如何用ThoughtWorks生成二维码,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...

    彭泽09024552022-09-29