小程序二维码
详细小程序二维码参考指引。
alipay.open.app.qrcode.create
生成小程序推广二维码
请求地址
环境 | HTTPS请求地址 |
---|---|
正式环境 | https://openapi.alipay.com/gateway.do |
公共请求参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
app_id | String | 是 | 支付宝分配给开发者的应用ID |
method | String | 是 | 接口名称 |
format | String | 否 | 仅支持JSON |
charset | String | 是 | 请求使用的编码格式,如utf-8,gbk,gb2312等 |
sign_type | String | 是 | 商户生成签名字符串所使用的签名算法类型,目 前支持RSA2和RSA,推荐使用RSA2 |
sign | String | 是 | 商户请求参数的签名串,详见签名 |
timestamp | String | 是 | 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" |
version | String | 是 | 调用的接口版本,固定为:1.0 |
app_auth_token | String | 否 | 详见应用授权概述 |
biz_content | String | 是 | 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档 |
请求参数
名称 | 类型 | 必填 | 示例 | 描述 |
---|---|---|---|---|
url_param | String | 是 | page/component/component-pages/view/view | 小程序中能访问到的页面路径 |
query_param | String | 是 | x=1 | 小程序的启动参数,打开小程序的query,在小程序onLaunch的方法中获取 |
describe | String | 是 | 二维码描述 | 对应的二维码描述 |
公共响应参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
code | String | 是 | 网关返回码 |
msg | String | 是 | 网关返回码描述 |
sub_code | String | 否 | 网关明细返回码 |
sub_msg | String | 否 | 网关明细返回码描述 |
sign | String | 是 | 签名 |
响应参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
qr_code_url | String | 是 | 二维码图片链接地址 |
代码示例
java版本
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");
AlipayOpenAppQrcodeCreateRequest request = new AlipayOpenAppQrcodeCreateRequest();
request.setBizContent("{" +
"\"url_param\":\"page/component/component-pages/view/view\"," +
"\"query_param\":\"x=1\"," +
"\"describe\":\"二维码描述\"" +
" }");
AlipayOpenAppQrcodeCreateResponse response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}
php版本
$aop = new AopClient ();
$aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do';
$aop->appId = 'your app_id';
$aop->rsaPrivateKey = '请填写开发者私钥去头去尾去回车,一行字符串';
$aop->alipayrsaPublicKey='请填写支付宝公钥,一行字符串';
$aop->apiVersion = '1.0';
$aop->signType = 'RSA2';
$aop->postCharset='GBK';
$aop->format='json';
$request = new AlipayOpenAppQrcodeCreateRequest ();
$request->setBizContent("{" .
"\"url_param\":\"page/component/component-pages/view/view\"," .
"\"query_param\":\"x=1\"," .
"\"describe\":\"二维码描述\"" .
" }");
$result = $aop->execute ( $request);
$responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response";
$resultCode = $result->$responseNode->code;
if(!empty($resultCode)&&$resultCode == 10000){
echo "成功";
} else {
echo "失败";
}
.Net版本
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", "app_id", "merchant_private_key", "json", "1.0", "RSA2", "alipay_public_key", "GBK", false);
AlipayOpenAppQrcodeCreateRequest request= new AlipayOpenAppQrcodeCreateRequest() ;
request.BizContent="{" +
"\"url_param\":\"page/component/component-pages/view/view\"," +
"\"query_param\":\"x=1\"," +
"\"describe\":\"二维码描述\"" +
" }";
AlipayOpenAppQrcodeCreateResponse response=client.Execute(request);
Console.WriteLine(response.Body);
HTTP版本
https://openapi.alipay.com/gateway.do?timestamp=2013-01-01 08:08:08&method=alipay.open.app.qrcode.create&app_id=2893&sign_type=RSA2&sign=ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE&version=1.0&biz_content=
{"url_param":"/index.html?name=ali&loc=hz", "query_param":"name=1&age=2", "describe":"二维码描述"}
//为确保安全通信,需自行验证响应示例中的sign值是否为蚂蚁金服所提供。
响应示例
json示例
{
"alipay_open_app_qrcode_create_response": {
"code": "10000",
"msg": "Success",
"qr_code_url": "http://mmtcdp.stable.alipay.net/wsdk/img?fileid=A*lSbPT5i9C1wAAAAAAAAAAABjAQAAAA&t=9005d7f574f30246b89c20c17302115f&bz=mmtcafts&"
},
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
异常示例
json示例
{
"alipay_open_app_qrcode_create_response": {
"code": "20000",
"msg": "Service Currently Unavailable",
"sub_code": "isp.unknow-error",
"sub_msg": "系统繁忙"
},
"sign": "ERITJKEIJKJHKKKKKKKHJEREEEEEEEEEEE"
}
业务错误码
错误码 | 错误描述 | 解决方案 |
---|---|---|
INVALID_PARAMETER | 参数有误 | 检查请求参数是否传入 |
APPQRCODE_NOT_TINYAPP | 非小程序应用类型 | 检查app应用类型,本接口只支持小程序的应用 |
SYSTEM_ERROR | 系统繁忙 | 稍后重试 |
APP_QUERY_ERROR | 应用查询错误 | 确认应用是否存在,如果应用存在,则稍后重试 |