跨境支付之Stripe支付渠道接入

Stripe是一家全球在线支付服务商,也是做跨境支付公司基本上都需要接入的渠道之一,本文记录接入其中核心的支付接口。(开发前需要开通各个国家的账户准备好账号密钥类)

目录

[1. 支付创建](#1. 支付创建)

[2. 捕获付款](#2. 捕获付款)

[3. 取消付款](#3. 取消付款)

[4. 创建退款](#4. 创建退款)

[5. 订单查询](#5. 订单查询)

[6. 退款查询](#6. 退款查询)


1. 支付创建

官方文档地址

Create a PaymentIntenthttps://docs.stripe.com/api/payment_intents/create

创建支付这里有几个部分需要注意

  1. 如果只授权不马上扣款,通过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 等后续在记录

以上信息纯属个人工作记录,勿喷

相关推荐
NRatel2 个月前
GooglePlay支付接入记录
android·游戏·unity·支付·googleplay
沈健_算法小生2 个月前
处理订单过期但支付成功的系统设计:平衡用户体验与业务规则
支付
RobinCode1 年前
深度解析跨境支付之名词解释
java·金融·支付·跨境
amcomputer1 年前
金融领域思考-前言
金融·支付·3方支付
NPE~2 年前
支付系统核心逻辑 — — 状态机(Java&Golang版本)
java·后端·golang·支付·教程·状态机
lanying242 年前
爬虫记录——第三方钱包加密参数逆向
爬虫·python·支付·钱包
Shujie_L2 年前
[金融支付]EMV是什么?
金融·支付
清 晨2 年前
跨境电商与物联网:智能设备的未来
科技·物联网·跨境电商·智能设备·跨境支付
HackShendi2 年前
个人实现在线支付,一种另类的在线支付解决方案
支付