支付宝服务商支付,如何邀请商户入驻?

news2024/12/23 3:37:31

支付宝服务商支付:如何邀请商户入驻

一、支付宝服务商支付

支付宝服务商支付模式为商户带来了诸多优势。它能够整合多种支付方式,包括扫码支付、刷脸支付、线上支付等,满足不同消费者的支付习惯。同时,提供了强大的财务管理功能,如交易流水查询、对账、报表生成等,帮助商户清晰掌握经营状况。此外,还具备丰富的营销工具,如优惠券、红包、积分等,助力商户吸引新客户、留住老客户,提升销售额。

对于服务商而言,每成功邀请一家商户入驻,都意味着能够分享商户交易产生的手续费收益。随着商户数量的增加和交易规模的扩大,服务商的收益也将水涨船高。而且,通过为商户提供优质的支付服务,服务商能够树立良好的品牌形象,拓展商业合作机会,在支付领域占据一席之地。

二、通过控制台生成授权链接/二维码

  1. 登录支付宝服务商控制台
    首先,使用您专属的支付宝服务商账号和密码,登录到支付宝为服务商的控制台。

  2. 导航至商户入驻功能模块
    在控制台的众多功能选项中,准确找到商户入驻相关的模块。通常,它会以醒目的图标或明确的文字标识呈现,确保您能够轻松定位。
    在这里插入图片描述

  3. 填写商户详细信息
    在商户入驻页面,您需要仔细填写商户的各项基本信息。这包括商户的名称、营业执照号码、法定代表人姓名、联系方式、经营范围、店铺地址等关键内容。准确而完整的信息有助于支付宝对商户进行资质审核和风险评估,加快入驻流程(商户号)。

  4. 一键生成授权链接/二维码
    当您完成商户信息的填写并提交后,支付宝服务商会根据您提供的信息,迅速为您生成专属的授权链接或二维码。

生成的授权链接可以通过电子邮件、短信、即时通讯工具等方式直接发送给商户。商户只需点击链接,即可进入授权页面,按照提示完成操作。而二维码则更适合线下场景。

三、手动拼接授权链接邀请商户入驻

在某些特定情况下,您可能需要手动拼接授权链接来邀请商户入驻。这需要您对支付宝授权链接的参数有深入的了解。

  • 单个应用授权:商家仅有一个应用需要授权。单个授权模式无法实现小程序相关接口调用,默认优先授权基础应用,若商家内没有基础应用,则系统自动生成基础应用。当商家拥有多个应用时,建议使用指定授权的方式拼接授权链接。
  1. app_id:这是支付宝为您的服务商应用分配的独一无二的标识符,类似于您应用的身份证号码。
  2. redirect_uri:商户完成授权操作后,支付宝将重定向商户访问的回调地址。这个地址通常用于接收授权结果和相关数据。
  3. state:用于保持请求和回调过程中的状态一致性,可以根据您的业务需求自定义设置,可不填。

以下是手动拼接授权链接的示例模板:

https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id={your_app_id}&redirect_uri=UrlEncode({your_redirect_uri})&state={your_state}

在实际操作中,您需要将 {your_app_id} 替换为您从支付宝获取的真实应用 ID,将 {your_redirect_uri} 替换为您预先设定的经过 URL 编码的回调地址,并根据具体业务场景合理设置 {your_state} 的值。

例如,如果您的应用 ID 是 1234567890,回调地址是 https://yourdomain.com/callback ,自定义状态值是 merchant001 ,那么拼接后的授权链接将是:

https://openauth.alipay.com/oauth2/appToAppAuth.htm?app_id=1234567890&redirect_uri=UrlEncode(https://yourdomain.com/callback)&state=merchant001
  • 指定应用授权:商家有多个应用,从多个应用中选择一个。支持 全权委托授权代开发模式。
    PC 端授权链接
https://b.alipay.com/page/message/tasksDetail?bizData=UrlEncode({"platformCode":"O","taskType":"INTERFACE_AUTH","agentOpParam":{"redirectUri":"{redirectUri}","appTypes":{appTypes},"isvAppId":"{isvAppId}","state":"{state}"}})

移动端二维码

alipays://platformapi/startapp?appId=2021003130652097&page=pages%2Fauthorize%2Findex%3FbizData%3DUrlEncode({"platformCode":"O","taskType":"INTERFACE_AUTH","agentOpParam":{"redirectUri":"{redirectUri}","appTypes":{appTypes},"isvAppId":"{isvAppId}","state":"{state}"}})

注意

  • 指定应用授权中,商家账号下必须拥有和 application_type 指定类型对应的应用,如
    application_type=MOBILEAPP
    (移动应用),商家必须有移动应用,否则授权页面中没有可选择的应用。platformCode 和 taskType 是固定参数,无需修改。

  • platformCode 参数值为大写字母“O”,不是数字零。

  • 参考支付宝参数

参数类型最大长度必填参数描述示例
isvAppIdString32第三方应用 APPID。2021000000000318
appTypesString/对商家应用的限制类型,数组格式,支持多选,中间使用英文逗号(,)分隔,目前支持类型:
MOBILEAPP(移动应用)
WEBAPP(网页应用)
PUBLICAPP(生活号)
TINYAPP(小程序)
BASEAPP(基础应用)
[“TINYAPP”,“WEBAPP”]
redirectUriString/回调页面地址,必须与第三方应用配置的 授权回调地址 一致。https://example.com
stateString100自定义参数,便于服务商识别是哪个商家的授权信息。对应的值必须为 base64 编码。MDAyMDIy
import java.net.URLEncoder;

public class UrlGenerator {
    public static void main(String[] args) {
        String redirectUri = "https://example.com";
        String appTypes = "[\"TINYAPP\",\"WEBAPP\"]";
        String isvAppId = "2021003130652097";
        String state = "MDAyMDIy";

        generateUrls(redirectUri, appTypes, isvAppId, state);
    }

    public static void generateUrls(String redirectUri, String appTypes, String isvAppId, String state) {
        try {
            // 对参数进行 URL 编码
            String encodedRedirectUri = URLEncoder.encode(redirectUri, "UTF-8");
            String encodedAppTypes = URLEncoder.encode(appTypes, "UTF-8");
            String encodedIsvAppId = URLEncoder.encode(isvAppId, "UTF-8");
            String encodedState = URLEncoder.encode(state, "UTF-8");

            // PC 端授权链接
            String urlPC = "https://b.alipay.com/page/message/tasksDetail?bizData=UrlEncode({"
                    + "\"platformCode\":\"O\","
                    + "\"taskType\":\"INTERFACE_AUTH\","
                    + "\"agentOpParam\":{"
                    + "\"redirectUri\":\"" + encodedRedirectUri + "\","
                    + "\"appTypes\":" + encodedAppTypes + ","
                    + "\"isvAppId\":\"" + encodedIsvAppId + "\","
                    + "\"state\":\"" + encodedState + "\""
                    + "}})";

            // 移动端二维码
            String urlQR = "alipays://platformapi/startapp?appId=2021003130652097&page=pages%2Fauthorize%2Findex%3FbizData%3DUrlEncode({"
                    + "\"platformCode\":\"O\","
                    + "\"taskType\":\"INTERFACE_AUTH\","
                    + "\"agentOpParam\":{"
                    + "\"redirectUri\":\"" + encodedRedirectUri + "\","
                    + "\"appTypes\":" + encodedAppTypes + ","
                    + "\"isvAppId\":\"" + encodedIsvAppId + "\","
                    + "\"state\":\"" + encodedState + "\""
                    + "}})";

            System.out.println("PC 端授权链接 URL: " + urlPC);
            System.out.println("移动端二维码 URL: " + urlQR);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

四、授权后获取app_auth_code

商家授权成功后,商家的页面跳转至服务商定义的回调地址(即 redirect_uri 参数对应的 URL),在回调页面请求中会带上当次授权的授权码 app_auth_code 和第三方应用的 APPID,示例如下。

http://example.com/doc/toAuthPage.html?app_id=2021000000000318&source=alipay_app_auth&application_type=TINYAPP,WEBAPP&app_auth_code=P1798b23682e34d96859afa000000003

就可获取到商户的app_auth_code了

五、使用 app_auth_code 换取 app_auth_token(支付宝官方文档)

服务商通过回调请求,获取到 app_auth_code 参数,然后调用 alipay.open.auth.token.app(换取应用授权令牌)接口,换取 app_auth_token。
说明:
• 应用授权的 app_auth_code 是唯一的。app_auth_code 使用一次后失效,单个授权的有效期为一天(从生成 app_auth_code 开始的 24 小时),未被使用自动过期。批量授权的有效期为 10 分钟。
• app_auth_token 在没有重新授权、取消授权或刷新授权的情况下,永久有效。
• 商家应用重新授权后,app_auth_token 会刷新(刷新后原 token 仍存在 5~10min 的缓存期),建议服务商通过系统链路将 app_auth_token 入库,可保障及时更新,发起代调用请求时从数据库读取该字段,以避免手动更新时影响存量线上业务。
请求参数说明

参数类型描述示例
grant_typeString换码类型,必填参数,以下值二选一。
authorization_code:使用 app_auth_code 换取 app_auth_token。
refresh_token:刷新 app_auth_token。
authorization_code
codeString授权码,当 grant_type 传入 authorization_code 时,必须传入本参数。传入授权获取的 app_auth_code 值。P1798b23682e34d96859afa000000003
refresh_tokenString刷新令牌,上次换取访问令牌时得到。本参数在 grant_type 为 authorization_code 时不填;为 refresh_token 时必填,且该值来源于此接口的返回值 app_refresh_token(即至少需要通过 grant_type=authorization_code 调用此接口一次才能获取)。201509BBdcba1e3347de4e75ba3fed2c9abebE36

请求示例

package com.java.sdk.demo;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.AlipayConfig;
import com.alipay.api.request.AlipayOpenAuthTokenAppRequest;
import com.alipay.api.response.AlipayOpenAuthTokenAppResponse;
import com.alipay.api.domain.AlipayOpenAuthTokenAppModel;
import com.alipay.api.FileItem;
import java.util.Base64;
import java.util.ArrayList;
import java.util.List;
public class AlipayOpenAuthTokenApp {
    public static void main(String[] args) throws AlipayApiException {
        // 初始化SDK
        AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig());
        // 构造请求参数以调用接口
        AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();
        AlipayOpenAuthTokenAppModel model = new AlipayOpenAuthTokenAppModel();
        // 设置刷新令牌
        model.setRefreshToken("201509BBdcba1e3347de4e75ba3fed2c9abebE36");
        
        // 设置应用授权码
        model.setCode("1cc19911172e4f8aaa509c8fb5d12F56");
        
        // 设置授权方式
        model.setGrantType("authorization_code或者refresh_token");
        
        request.setBizModel(model);
        // 第三方代调用模式下请设置app_auth_token
        // request.putOtherTextParam("app_auth_token", "<-- 请填写应用授权令牌 -->");
        AlipayOpenAuthTokenAppResponse response = alipayClient.execute(request);
        System.out.println(response.getBody());
        if (response.isSuccess()) {
            System.out.println("调用成功");
        } else {
            System.out.println("调用失败");
            // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接
            // String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response);
            // System.out.println(diagnosisUrl);
        }
    }
    private static AlipayConfig getAlipayConfig() {
        String privateKey  = "<-- 请填写您的应用私钥,例如:MIIEvQIBADANB ... ... -->";
        String alipayPublicKey = "<-- 请填写您的支付宝公钥,例如:MIIBIjANBg... -->";
        AlipayConfig alipayConfig = new AlipayConfig();
        alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do");
        alipayConfig.setAppId("<-- 请填写您的AppId,例如:2019091767145019 -->");
        alipayConfig.setPrivateKey(privateKey);
        alipayConfig.setFormat("json");
        alipayConfig.setAlipayPublicKey(alipayPublicKey);
        alipayConfig.setCharset("UTF-8");
        alipayConfig.setSignType("RSA2");
        return alipayConfig;
    }
}
参数描述示例
user_id商家的 UID。2088102150527498
auth_app_id商家应用的 APPID。2021002120000002
app_auth_token应用授权令牌。202201BB6891c77a23d9450c930e3edc0000003
app_refresh_token刷新的新令牌。202201BB27bcdfc7db37443ea4cf1203b0000029
expires_in令牌有效时间,该字段已作废,app_auth_token 在没有重新授权、取消授权或刷新授权的情况下,永久有效。31536000
re_expires_in刷新令牌的有效时间(从接口调用时间作为起始时间),单位为秒。32140800

响应示例

{
    "alipay_open_auth_token_app_response": {
        "code": "10000",
        "msg": "Success",
        "user_id": "2088102150000008",
        "auth_app_id": "2021002120000002",
        "app_auth_token": "202201BB6891c77a23d9450c930e3edc0000003",
        "app_refresh_token": "202201BB6891c77a23d9450c930e3edc0000003",
        "expires_in": 31536000,
        "re_expires_in": 32140800
    },
    "sign": "***"
}

若商家授权指定应用,则返回该应用的授权结果信息,如下所示。

{
  "alipay_open_auth_token_app_response":
  {
    "code":"10000",
    "msg":"Success",
    "tokens":
    [
        {
                "app_auth_token":"201712BB_D0804adb2e743078d1822d536956X34",
                "app_refresh_token":"201712BB_d5b15d53f7b4fd5aa649f176ca97X34",
                "auth_app_id": "2017120501354689",
                "expires_in": 31536000,
                "re_expires_in": 32140800,
                "user_id": "2088*******"
        }
      ]
  }, 
    "sign":"***"
}

五、邀请商户入驻的实用技巧与注意事项

  1. 清晰明了的沟通
    在向商户发送邀请时,务必使用简洁、易懂的语言清晰地阐述入驻的好处、流程和所需材料。可以制作图文并茂的操作指南或视频教程,帮助商户快速上手。

  2. 及时有效的支持
    商户在入驻过程中可能会遇到各种问题,如技术难题、资质审核疑问等。作为服务商,要建立高效的客服渠道,及时响应商户的咨询和求助,确保商户能够顺利完成入驻。

  3. 严格遵守规定
    支付宝对于服务商的业务操作有一系列严格的规定和政策,务必认真学习并严格遵守。任何违规行为都可能导致服务暂停甚至账号封禁,给您和商户带来不必要的损失。

  4. 数据安全与隐私保护
    在处理商户信息时,要高度重视数据安全和隐私保护。采取严格的加密措施,确保商户信息不被泄露或滥用。

  5. 持续跟进与优化
    邀请商户入驻只是第一步,后续要持续跟进商户的使用情况,收集反馈意见,不断优化服务质量,提升商户的满意度和忠诚度。

总之,邀请商户入驻支付宝服务商支付是一项充满挑战但极具潜力的工作。通过熟练掌握控制台生成授权链接/二维码和手动拼接授权链接的方法,结合良好的沟通技巧、优质的服务支持和严格的合规操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1888516.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MindSpore学习打卡】应用实践-计算机视觉-ShuffleNet图像分类:从理论到实践

在当今的深度学习领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09;已经成为图像分类任务的主流方法。然而&#xff0c;随着网络深度和复杂度的增加&#xff0c;计算资源的消耗也显著增加&#xff0c;特别是在移动设备和嵌入式系统中&#xff0c;这种资源限制尤为突出。…

数据结构(JAVA)—代码题

01-数据结构—判断题 02-数据结构—选择题 03 数据结构—多选填空程序填空 ​ 01-顺序表的建立及遍历 import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; import java.util.Scanner;public class Main {public static void main(St…

有哪些好的 Stable Diffusion 提示词(Prompt)可以参考?

Docker 作图咒语生成器 docker-prompt-generator 是一个开源项目&#xff0c;可以利用模型反推出提示词&#xff0c;让你偷偷懒&#xff0c;无需琢磨怎么写prompt&#xff0c;只需要找一个差不多的模型反推一下&#xff0c;直接用就好了&#xff0c;支持支持 MidJourney、Stab…

《Linux开发笔记》C语言编译

C语言编译过程 编译过程主要分为四步&#xff1a;预处理、编译、汇编、链接 预处理&#xff1a;主要用于查找头文件、展开宏 编译&#xff1a;把.i文件编译成.s文件 汇编&#xff1a;把.s文件汇编为.o文件 链接&#xff1a;把多个.o文件链接成一个app 以上四个步骤主要由3个命…

颅内感染性疾病患者就诊指南

颅内感染性疾病&#xff0c;即病原体侵入中枢神经系统&#xff0c;导致脑部或脑膜发生炎症的疾病。这些病原体可能是细菌、病毒、真菌或寄生虫等。颅内感染不仅会对脑组织造成损害&#xff0c;还可能引发一系列严重的并发症&#xff0c;如癫痫发作、意识障碍等 颅内感染性疾病的…

电子邮件OTP验证身份认证接口API服务商比较

电子邮件OTP验证身份认证接口API服务商如何正确选择&#xff1f; 电子邮件OTP验证是一种广泛应用且安全的身份认证方式。AokSend将比较几家主要的电子邮件OTP验证身份认证接口API服务商&#xff0c;帮助企业选择合适的解决方案。 电子邮件OTP&#xff1a;验证优势 可以为用户…

UE4_材质_材质节点_DepthFade

一、DepthFade参数 DepthFade&#xff08;深度消退&#xff09;表达式用来隐藏半透明对象与不透明对象相交时出现的不美观接缝。 项目说明属性消退距离&#xff08;Fade Distance&#xff09;这是应该发生消退的全局空间距离。未连接 FadeDistance&#xff08;FadeDistance&a…

数字时代的巨变!互联网思维与按效果付费的超强联合!

数字时代企业转型的重大变革 家人们&#xff0c;今天来聊聊数字时代企业数字化转型那些事儿&#xff01; 在这个时代&#xff0c;企业数字化转型已经是必然趋势啦。蚓链数字化生态系统在帮助企业在转型过程中采用互联网思维&#xff0c;再加上按效果付费的商业交付模式&#xf…

小程序开发平台版源码系统——万能门店小程序功能 前后端分离 带完整的安装代码包以及搭建教程

系统概述 在移动互联网的浪潮中&#xff0c;小程序以其轻量、便捷、无需下载即可使用的特点&#xff0c;迅速成为连接用户与商家的新桥梁。为了满足广大商家快速搭建个性化、高效运营的小程序需求&#xff0c;我们精心打造了“小程序开发平台版源码系统——万能门店小程序功能…

【经典算法题】两数之和

暴力解法 两层for循环&#xff0c;O(n*n) 优化解法 哈希&#xff0c;O(n) class Solution {public int[] twoSum(int[] nums, int target) {Map<Integer, Integer> hashtable new HashMap<Integer, Integer>();for (int i 0; i < nums.length; i) {if (ha…

【Hec-Ras】第一期:软件安装

Hec-Ras软件安装 1 HEC-RAS软件介绍2 HEC-RAS软件下载3 HEC-RAS软件安装4 HEC-RAS软件界面介绍参考 1 HEC-RAS软件介绍 HEC-RAS 是美国陆军工程兵团工程水文中心&#xff08; Hydrologic Engineering Centers, HEC&#xff09;开发的河道水力计算程序&#xff08;River Analys…

前后端分离django-restframework——解决跨域请求

为什么会出现跨域问题&#xff1f; 出于浏览器的同源策略限制。同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建…

Redis 7.x 系列【16】持久化机制之 AOF

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 1. 概述 默认情况下&#xff0c;Redis 使用RDB持久化&#xff0c;但如果进程出现问题或电源中断…

企业如何在当前形势下实现精益生产?

近年来&#xff0c;企业面临诸多挑战&#xff0c;从成本控制到效率提升&#xff0c;每一项决策都关乎着企业的生死存亡。尤其是在全球经济一体化和市场竞争日益激烈的大背景下&#xff0c;企业如何实现精益生产&#xff0c;成为了摆在众多企业家面前的一道难题。今天&#xff0…

STM32 看门狗 HAL

由时钟图可以看出看门狗采用的是内部低速时钟&#xff0c;频率为40KHz 打开看门狗&#xff0c;采用32分频&#xff0c;计数1250。 结合设置的分频系数和重载计数值&#xff0c;我们可以计算出看门狗的定时时间&#xff1a; 32*1250/40kHz 1s 主函数中喂狗就行 HAL_IWDG_Ref…

ISP IC/FPGA设计-第一部分-SC130GS摄像头分析(0)

1.介绍 SC130GS是一款国产的Global shutter CMOS图像传感器&#xff0c;最高支持1280Hx1024V240fps的传输速率&#xff1b;SC130GS有黑白和彩色款&#xff0c;作为ISP开发选择彩色的&#xff0c;有效像素窗口为1288Hx1032V&#xff0c;支持复杂的片上操作&#xff0c;选择他理…

2023-2024华为ICT大赛中国区 实践赛网络赛道 全国总决赛 理论部分真题

Part1 数通模块(10题)&#xff1a; 1、如图所示&#xff0c;某园区部署了IPv6进行业务测试&#xff0c;该网络中有4台路由器&#xff0c;运行OSPFv3实现网络的互联互通&#xff0c;以下关于该OSPFv3网络产生的LSA的描述&#xff0c;错误的是哪一项?(单选题) A.R1的LSDB中将存在…

若依 ruoyi vue上传控件 el-upload上传文件 判断是否有文件 判断文件大小

console.info(this.$refs.upload.uploadFiles.length)//this.$refs.upload.uploadFiles.length 获取当前上传控件中已选择的文件大小//判断是否存在已上传文件 if(this.$refs.upload.uploadFiles.length 0){this.$modal.msgWarning("请上传文件");return; }

高质量免费数字人(整合包),是的,我又出手了~

在数字时代&#xff0c;我们不断追求更加逼真和高效的技术应用&#xff0c;特别是在数字人领域。腾讯推出了一款名为MuseTalk的革命性数字人产品&#xff0c;支持实时音频驱动的唇部同步数字人&#xff0c;迅速成为行业的新宠。&#xff08;先来一张美图镇楼&#xff09; Muse…

【SPIE独立出版】第四届智能交通系统与智慧城市国际学术会议(ITSSC 2024)

第四届智能交通系统与智慧城市国际学术会议&#xff08;ITSSC 2024&#xff09;将于2024年8月23-25日在中国西安举行。本次会议主要围绕智能交通、交通新能源、无人驾驶、智慧城市、智能家居、智能生活等研究领域展开讨论&#xff0c; 旨在为该研究领域的专家学者们提供一个分享…