Stripe是一家全球在线支付服务商,也是做跨境支付公司基本上都需要接入的渠道之一,本文记录接入其中核心的支付接口。(开发前需要开通各个国家的账户准备好账号密钥类)
目录
[1. 支付创建](#1. 支付创建)
[2. 捕获付款](#2. 捕获付款)
[3. 取消付款](#3. 取消付款)
[4. 创建退款](#4. 创建退款)
[5. 订单查询](#5. 订单查询)
[6. 退款查询](#6. 退款查询)
1. 支付创建
官方文档地址
Create a PaymentIntenthttps://docs.stripe.com/api/payment_intents/create
创建支付这里有几个部分需要注意
- 如果只授权不马上扣款,通过capture_method=manual 参数实现。这后续决定是否capture (实际扣款)以及capture多少金额。
授权且扣款,需要设置capture_method=automatic 或者capture_method=manual后使用 capture
2 ) 如果允许多次 capture ,需要stripe配置支持
3 )3DS 处理
4 )币种的金额处理
这里给一下测试的demo数据,用的是 Visa 的测试卡
curl -X POST "https://api.stripe.com/v1/payment_intents" \
-u '你的密钥': \
-d "amount"=20000 \
-d "currency"="hkd" \
-d "confirm"=true \
-d "description"="Art material purchase" \
-d "transfer_data[destination]"="你的account" \
-d "application_fee_amount"="1000" \
-d "on_behalf_of"="acct_1S0e8SPtz0q7qSTR" \
-d capture_method=manual \
-d "payment_method_data[type]"="card" \
-d "payment_method_data[card][number]"="4242424242424242" \
-d "payment_method_data[card][cvc]"="123" \
-d "payment_method_data[card][exp_month]"="04" \
-d "payment_method_data[card][exp_year]"="2027" \
-d "payment_method_data[billing_details][address][city]"="Hong Kong" \
-d "payment_method_data[billing_details][address][country]"="HK" \
-d "payment_method_data[billing_details][address][line1]"="address_full_match" \
-d "payment_method_data[billing_details][address][state]"="Kowloon" \
-d "payment_method_data[billing_details][address][postal_code]"="999077" \
-d "payment_method_data[billing_details][email]"="testemailbilling@stripe.com" \
-d "payment_method_data[billing_details][name]"="test billing name" \
-d "payment_method_data[billing_details][phone]"="+85212321231" \
-d "metadata[channelNo]"="CO1965707921635434508" \
-d "metadata[account_life]"=5 \
-d "metadata[test]"="test1" \
-d "shipping[address][city]"="Hong Kong" \
-d "shipping[address][country]"="HK" \
-d "shipping[address][line1]"="address_full_match" \
-d "shipping[address][state]"="Kowloon" \
-d "shipping[address][postal_code]"="999077" \
-d "shipping[name]"="test shipping" \
-d "shipping[phone]"="+85212321231" \
-d "shipping[tracking_number]"="track01" \
-d "return_url"="https://photonpay.com/aaa/bbb" \
-d "statement_descriptor_suffix"="A123"
返回的订单ID信息

将请求参数,转换为 OkHttpClient 方式进行实现,可以用 ChatGPT 帮你写,需要注意的是他是不是 post josn 请求,以下全部请求简单贴一下参数,具体转为代码,都可以让ChatGPT帮我们实现 主要还是参数
2. 捕获付款
官方文档地址
Capture a PaymentIntenthttps://docs.stripe.com/api/payment_intents/capture

如果允许多次capture ,需要注意下参数,核心的 final_capture 标识是否为最后一笔capture以及每次capture的金额
如果是捕获全部金额,则只需要传上一步的订单号,如果订单不需要capture ,则不需要调用该接口
curl -X POST https://api.stripe.com/v1/payment_intents/pi_3SI2u1LCO64cHWxm1FA26mnh/capture \
-u "sk_test_你自己的私钥:"
用上面的订单测试,返回结果

3. 取消付款
官方文档地址
Cancel a PaymentIntenthttps://docs.stripe.com/api/payment_intents/cancel取消这里暂时没啥特别需要注意的参数,直接调用接口即可

curl -X POST https://api.stripe.com/v1/payment_intents/pi_3SI2u1LCO64cHWxm1FA26xxx/cancel \
-u "sk_test_你的私钥:"
4. 创建退款
官方文档地址
Create a refundhttps://docs.stripe.com/api/refunds/create 退款允许多次退款,退款总金额不超过订单金额,不传金额默认全退

curl https://api.stripe.com/v1/refunds \
-u 'sk_test_你的私钥': \
-d payment_intent="pi_3S6SM4LCO64cHWxm1CRKSxxx"
5. 订单查询
官方文档地址
Retrieve a PaymentIntenthttps://docs.stripe.com/api/payment_intents/retrieve 指定订单查询
这部分也是直接调用接口即可
curl https://api.stripe.com/v1/payment_intents/pi_3S6SM4LCO64cHWxm1CRKSQq2 \
-u 'sk_test_你的私钥':
6. 退款查询
官方文档地址
Retrieve a refundhttps://docs.stripe.com/api/refunds/retrieve退款信息查询,这里需要用退款返回的ID进行查询
curl https://api.stripe.com/v1/payouts/re_3S6SM4LCO64cHWxm1sJpPL4t \
-u 'sk_test_你的私钥':
还有渠道支付回调,3DS回调,webhook接入,Network token 等后续在记录
以上信息纯属个人工作记录,勿喷