golang集成支付宝支付(沙箱环境)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang集成支付宝支付(沙箱环境)相关的知识,希望对你有一定的参考价值。

参考技术A 最近项目有支付需求,需要集成app内支付,而支付宝官方没有提供go的sdk,所以去github上找了一下第三方实现的sdk,这里记录一下流程。

github地址 https://github.com/smartwalle/alipay

支付宝沙箱环境配置地址 https://openhome.alipay.com/platform/appDaily.htm

这里主要讲解一下app内拉起支付宝控件支付,用户手机必须安装了支付宝。

app内支付和app网页支付其实差不多,可以做成用户安装了支付宝就拉起控件使用app内支付,没有安装就跳转网页支付。

支付宝支付—沙箱环境使用

前言

支付宝支付—沙箱环境使用本文
支付宝支付-支付宝PC端扫码支付待写
支付宝支付-手机浏览器H5支付待写

支付宝提供的沙箱环境,入门门槛非常低,不需要商家认证那一套,这一点对开发者是非常友好的,可以直接在本地运行测试,跟最终的产品上线效果是一样的,好了,废话不说,进入正题。

1. 登陆支付宝开放平台

支付宝开放平台链接:https://open.alipay.com

右侧直接支付宝扫码支付就完事了。

登陆之后需要填写入驻信息,如果是个人开发者的话可以切换一下信息,默认为系统服务商,可自行切换到开发者身份。如下图所示。

技术图片
 
技术图片

2. 进入沙箱环境

登陆成功后,如下图所示,页面往下拉,找到 开发服务 > 研发服务

技术图片

这就是沙箱环境的入口了,接下来就是需要设置一下参数了。

补充:为保证沙箱长期稳定,每周日中午12点至每周一中午12点沙箱环境进行维护,期间可能出现不可用,敬请谅解。

3. 设置必要参数

第一个需要设置的参数为 RSA2(SHA256)密钥(推荐)

技术图片

点击设置后,可以根据自己情况选择加密方式,下面我采用的是公钥:

技术图片

下载安装支付宝开放平台开放助手,点击生成秘钥,公钥私钥都有用注意保存一下:

技术图片

将生成的公钥复制到支付宝窗口中:

技术图片

第二个需要设置的参数为 应用网关

开发环境网关链接为:https://openapi.alipaydev.com/gateway.do

技术图片

4. 体验测试账户

沙箱环境提供了测试账户,包含商户号跟买家号,但是该账户只能在支付宝提供的测试APK上使用。

界面继续往下拉,找到测试APK的下载地址:「或者是在左侧的沙箱工具中下载」

技术图片

账户信息在左侧的 沙箱账户 中。

技术图片

5. 下载官方提供的测试Demo

当面付
APP支付客户端
APP支付服务端
分享到支付宝
手机网站支付
生活号(原服务窗)
JS-API

我们就以 手机网站支付 为例,测试一下(java)。

6. 运行测试Demo

下载手机网站支付 Demo 后导入 IDEA 中,需要调整的参数如下:

AlipayConfig.java

public class AlipayConfig {
    // 商户appid
    public static String APPID = "2016101700705301";
    // 私钥 pkcs8格式的
    public static String RSA_PRIVATE_KEY = "";
    // 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
    public static String notify_url = "http://ngrok.sscai.club/alipay_trade_wap_pay_java_utf_8_war_exploded/notify_url.jsp";
    // 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址
    public static String return_url = "http://ngrok.sscai.club/alipay_trade_wap_pay_java_utf_8_war_exploded/return_url.jsp";
    // 请求网关地址
    public static String URL = "https://openapi.alipaydev.com/gateway.do";
    // 编码
    public static String CHARSET = "UTF-8";
    // 返回格式
    public static String FORMAT = "json";
    // 支付宝公钥
    public static String ALIPAY_PUBLIC_KEY = "";
    // 日志记录目录
    public static String log_path = "/log";
    // RSA2
    public static String SIGNTYPE = "RSA2";
}

简单说一下几个参数吧。

RSA_PRIVATE_KEY:私钥,这个参数就是通过 支付宝开放平台开放助手 生成的应用公钥应用私钥 中的应用私钥

notify_url:异步通知,当你支付成功时,支付宝回调你本地启动项目的接口,必须是外网可以访问的,否则支付宝请求不到,但是又得是你本地的方法「不讨论线上测试」,所以这就需要用到内网映射,推荐使用免费版的 natapp(自行百度)。

粗糙理解:内网映射就是将内网映射到外网,实现通过外网链接访问本地的效果。
例如上方的:http://ngrok.sscai.club 指向我本地的 http://127.0.0.1:port

ALIPAY_PUBLIC_KEY:支付宝公钥,注意这个参数不是你上边生成的应用公钥,而是下方截图中的支付宝公钥

技术图片

运行启动项目后如下图所示「PC端」:

技术图片

由于是手机网站支付,所以我们在手机浏览器进行测试。

技术图片

本文的测试Demo代码:https://www.lanzous.com/i8oe2sb

求关注,求推荐

博客地址:https://www.cnblogs.com/niceyoo

求关注??,求推荐??,如果觉得这篇文章有点东西,不妨左上角关注一下我。

以上是关于golang集成支付宝支付(沙箱环境)的主要内容,如果未能解决你的问题,请参考以下文章

支付宝支付沙箱环境配置

支付宝支付-手机浏览器H5支付

支付宝支付沙箱环境配置

支付宝支付沙箱环境配置

支付宝支付(沙箱环境)一 当面付 扫码支付

支付宝支付,沙箱环境