Shopify支付对接流程记录

主要交互流程图

前端对接方式有SDK, Buy Button购买,购物车方式。可以根据业务需要来选择合适的对接

SDK:  app首选

Buy Button:适合单个购买产品下单

购物车:适合多个产品同时购买

实际过程中,对接了SDK 和购物车形式的,按钮购买不适合用于业务中。

整体对接流程图

相关功能的参考链接:

1. 查询订单列表

Order

2.配置webhook

shopify帮助中心: 

登录 自己的shopify商店

https://xxx.xxx.com/admin/orders

  1. 找到左下角“设置”,点击。
  2. 点击通知--webhook
  3. 注意:如果 Webhook 目的地重复返回一个非 200 状态响应,Webhook 订阅则会自动从您的 Shopify 后台删除。可以在官方帮助中心找到。
  4. 注意: webhook API 提供了”至少一次”的 webhook 事件传递。这意味着一个端点可能会多次收到相同的 webhook 事件。X-Shopify-Webhook-Id您可以通过将标头与以前的事件进行比较来检测重复的 webhook事件
  5. shopify的重试策略是等接口5秒钟返回,5秒没返回或者返回错误则认为是失败,然后会在48小时内重试19次,重试19次不行的话就将这个webhook删除了

3.接收推送

自己的服务开外网或者部署在公网接数据查看验证

4. graphiql 浏览器测试工具

Shopify Admin API GraphiQL explorerBrowse Shopify’s GraphQL Admin API resources using the GraphiQL explorer.https://shopify.dev/apps/tools/graphiql-admin-api

常见帮助链接地址:

开发者api:https://shopify.dev/api/admin

如果存在订阅产品的购买,那订阅口扣费失败记录查询和通知就极其重要了。话不多说,直接上成果。

最后确认用可以分类Charge error的接口

https://api.rechargeapps.com/charges?page=1&limit=25&status=ERROR&sort_by=updated_at-desc&updated_at_min=2022-07-11&updated_at_max=2022-08-12

接口中包含note备注信息

以下是分析过程记录

5.查找客户Recharge CUSTOMER ID。External Customer ID表示的是用户在shopify展示的用户ID,这两个ID是不同的。
 

 recharge 文档说明 :

https://docs.rechargepayments.com/docs/endpoints

recharge 开发调用api,文档不是很全,建议页面操作,F12看接口

Getting started with Recharge

如何查询到用户购买的订阅产品,扣费失败呢?

分析过程:

1.确认好要调用的api是应用里的api还是shopify网页的接口。

网页版RESTFUL接口API:

Shopify Admin API

Recharge Application Restful Api: 

Recharge API Reference - Retrieve a customer

2. 调用接口查看需要的数据是否满足

### 实现Shopify支付API接口在ThinkPHP5中的调用与集成 为了在 ThinkPHP5 中成功集成 Shopify 支付 API 接口,可以考虑使用现有的 PHP 客户端库来简化开发过程。两个主要的选择是 `shopify-api-php`[^1] 和 `php-shopify`[^2]。 #### 选择合适的客户端库 对于大多数开发者而言,`php-shopify` 可能是一个更好的选项,因为它提供了更全面的功能支持和文档说明。该库不仅涵盖了基本的 API 请求处理功能,还包含了 OAuth 认证流程的支持,这对于构建安全可靠的电商应用至关重要。 #### 准备工作 - 确认已安装 Composer 并配置好环境变量以便能够在命令行工具中直接运行 composer 命令。 - 创建一个新的 ThinkPHP5 项目或打开现有项目。 #### 安装依赖项 通过 Composer 安装所选的 Shopify PHP SDK: ```bash composer require php-sdk/shopifyapi ``` 此操作会自动下载并设置必要的文件到项目的 vendor 文件夹内。 #### 配置应用程序 编辑 application/config.php 或创建专门的应用程序配置文件,在其中定义所需的参数,如商店名称、API 密钥、密码以及其他认证信息等。 ```php return [ 'shopify' => [ 'SHOPIFY_API_KEY' => env('SHOPIFY_API_KEY'), 'SHOPIFY_PASSWORD' => env('SHOPIFY_PASSWORD'), 'SHOP_NAME' => env('SHOP_NAME') ] ]; ``` 确保这些敏感数据不会被提交至版本控制系统;建议利用 .env 文件管理此类配置项,并将其路径加入 gitignore 列表中以保护隐私。 #### 编写业务逻辑代码 接下来编写具体的控制器方法用于发起请求给 Shopify API 。这里给出一个简单的例子展示如何查询订单列表: ```php use \ShopifyApi\Client; class OrderController extends Controller { protected $client; public function __construct(){ parent::__construct(); // 初始化Client实例 $this->client = new Client([ " SHOP_NAME " => config('shopify.SHOP_NAME'), " SHOPIFY_API_KEY "=> config('shopify.SHOPIFY_API_KEY'), " PASSWORD " => config('shopify.SHOPIFY_PASSWORD')]); } /** * 获取所有订单 */ public function getOrders() { try{ $response = $this->client->call('GET', '/admin/api/2023-07/orders.json'); echo json_encode($response); }catch(\Exception $e){ Log::error("Failed to fetch orders:".$e->getMessage()); throw new Exception("Error Processing Request", 1); } } } ``` 上述代码片段展示了如何初始化一个 Shopify API 的 client 对象,并通过它发送 GET 请求去获取指定店铺下的全部订单记录。注意这里的 URL 是基于官方 RESTful API 文档构造而成的,请根据实际需求调整资源路径及参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值