接口名称:支付宝pass新建卡券实例接口
英文名称:alipay.pass.instance.add
上一步:[url]https://openclub.alipay.com/read.php?tid=13240&fid=72[/url]
下一步:[url]https://openclub.alipay.com/read.php?tid=13243&fid=72[/url]
一、注意事项
该接口用于将卡劵发放到用户卡包内。
recognition_info中的out_trade_no参数值为支付接口中,交易成功的out_trade_no参数值。
即使交易进行退款等操作,只有交易成功后,可以根据该参数值进行发放卡劵。
二、参数说明
1、recognition_type:设置固定参数值为“1”——订单信息;
2、tpl_id:卡劵模版ID,为模板创建接口返回的tpl_id参数值;
3、recognition_info:
(1)partner_id:out_trade_no对应的签约商户pid(与调用接口对应的pid可以不一致);
(2)out_trade_no:必须是交易成功的外部交易号(交易失败或交易关闭无法发劵);
4、tpl_params:为模板创建接口返回的tpl_params参数信息——自定义参数;
(1)code:支付宝卡劵的外部显示卡号;
(2)serialNumber:支付宝有唯一性校验,每次请求请保证唯一性,不要重复 ;
(3)channelID:可设置为APPID(从创建应用处获取)或者pid ,(与调用接口的appid不是同一个账户,不会影响使用,只与卡劵更新接口的channelID参数有关);
三、接口请求示例
Java版本请求示例
public static void main(String[] args) throws AlipayApiException { AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type); AlipayPassInstanceAddRequest request = new AlipayPassInstanceAddRequest(); // 自定义参数 request.setBizContent( //该值固定为1–订单信息 "{"recognition_type":"1"," //创建卡券模板接口返回的tpl_id + ""tpl_id":"2019013016274826850929194"," + ""recognition_info":{"partner_id":"2088102180198585"," //partner_id必须是交易创建的外部订单号对应的商户pid,可以与调用接口的pid不一致 //此时我设置的2088102180198585是我卖家沙箱账户。 //必须是交易创建的外部订单号 + ""out_trade_no":"sao2018816105156165"}," //模版动态参数信息 + ""tpl_params":" + "{" + ""validStartDate":"2018-06-28 11:55:42"," + ""validEndDate":"2020-06-01 11:55:42"," + ""secondLogoText":"我是副标题"," //channelID和调用接口的appid不是同一个账户,不会影响使用,只与更新接口的channelID参数有关 + ""channelID":"2016101800718925"," + ""discountInfo":"凭此券即可打0.5折"," //支付宝卡包的劵码,是更新接口的verify_code参数值,建议实时更新 + ""code":"2016072325625921"," + ""useStateDesc":"可使用"," + ""logoText":"2018年支付宝卡包测试-优惠劵"," //支付宝有唯一性校验,每次请求请保证唯一性,不要重复 + ""serialNumber":"20170809147614221"}}"); AlipayPassInstanceAddResponse response=null; try { response = alipayClient.execute(request); System.out.println(response.getBody()); } catch (AlipayApiException e) { // TODO Auto-generated catch block e.printStackTrace(); } if(response.isSuccess()){ System.out.println("调用成功"); } else { System.out.println("调用失败"); } }
响应参数返回示例
{"alipay_pass_instance_add_response":{"code":"10000","msg":"Success","result":"{"operate":"ADD","serialNumber":"20170809147614221","passId":"93434757086","errorCode":"SUCCESS","errorMsg":"处理成功"}","success":true},"sign":"Y3USnGyTWvdfoJ5j9mqL0N54yCjhx91HsPQg0eg9XEjxJ++TqQeKHBxTVQbQ7K6qWRUKMv4eka6eUWsW5xdJuLHaUI3lVFIfmH1EZZqgWhpAsVGB8EGusF9WUM5UOOxc/r6tjZe3cwijr//M3X8URsi1deTWRzlaipka8m6gT8iEANGvNb7YTlkIQlGzlvjQLurnwMyVfuY4qnU7vQV8Vtx/2VHoI7ZJBLVL4nE7fta/7JMGH+74R+UzWNzsWHdAO3kDqFe/EJECrQuKGHG+CgZJLvSjGQGB+i6xbhJIMD6HaZkN8NysyH1bTVxeesSctkQUhIYEeWhcIqMOb5dxJA=="}
PHP版本请求示例
<?php require_once 'AopSdk.php'; $aop = new AopClient (); $aop->appId = '填写您的appid'; $aop->rsaPrivateKey = '填写您的私钥'; $aop->alipayrsaPublicKey='填写您的支付宝公钥'; $aop->gatewayUrl = 'https://openapi.alipay.com/gateway.do'; $aop->apiVersion = '1.0'; $aop->signType = 'RSA2'; $aop->postCharset='utf-8'; $aop->format='json'; $date=date("YmdHis"); $arr=range(1000,9999); shuffle($arr); $request = new AlipayPassInstanceAddRequest (); $request->setBizContent( //该值固定为1–订单信息 "{"recognition_type":"1"," //创建卡券模板接口返回的tpl_id . ""tpl_id":"2019022209351735229484926"," . ""recognition_info":{"partner_id":"2088102180198585"," //partner_id必须是交易创建的外部订单号对应的商户pid,可以与调用接口的pid不一致 //此时我设置的2088102180198585是我卖家沙箱账户。 //必须是交易创建的外部订单号 . ""out_trade_no":"sao2018816105156165"}," //模版动态参数信息 . ""tpl_params":" . "{" . ""validStartDate":"2018-06-28 11:55:42"," . ""validEndDate":"2020-06-01 11:55:42"," . ""secondLogoText":"我是副标题"," //channelID和调用接口的appid不是同一个账户,不会影响使用,只与更新接口的channelID参数有关 . ""channelID":"2016101800718925"," . ""discountInfo":"凭此券即可打0.5折"," //支付宝卡包的劵码,是更新接口的verify_code参数值,建议实时更新 . ""code":"2016072325625921"," . ""useStateDesc":"可使用"," . ""logoText":"2018年支付宝卡包测试-优惠劵"," //支付宝有唯一性校验,每次请求请保证唯一性,不要重复 . ""serialNumber":"20170809147614255"}}"); $result = $aop->execute ( $request); var_dump($result); $responseNode = str_replace(".", "_", $request->getApiMethodName()) . "_response"; $resultCode = $result->$responseNode->code; if(!empty($resultCode)&&$resultCode == 10000){ echo "成功"; } else { echo "失败"; }
响应参数返回示例
public 'alipay_pass_instance_add_response' => object(stdClass)[9] public 'code' => string '10000' (length=5) public 'msg' => string 'Success' (length=7) public 'result' => string '{"operate":"ADD","serialNumber":"20170809147614255","passId":"22589","errorCode":"SUCCESS","errorMsg":"处理成功"}' (length=117) public 'success' => boolean true public 'sign' => string 'gSKobcHCKlZXZ01KWNJG18KP+wbmC42xDu6g0KUATmQSmQMsYnjTjP1JBz5QemPsg7mS/4X2+ERYLtMaenHDw0wsqzRArPqPc3Pq3gBFnTS52bFFK/Cj3CGpargIcs34PeqnUJdbbo4NtOKPwMnjIIW44oPKINGgU/GaEb/mD9g65MS2zp7EpX75n+xlHvRNWx4NZWi0IPSK3iENW1zU+VpkD5N0wKl7ADL0y2QqTyEEGctuNtsMbuQoww9dn4qPGGTffme1GSZfR9LNANMlKdAxpluRH/6Kt2fNtzpfH0/3xiwaMMSvQJeQ9IV23qpymJXy+bkwICw0G+U8T+60bw==' (length=344)
.NET版本请求示例
IAopClient client = new DefaultAopClient(config.gatewayUrl, config.app_id, config.private_key, "json", "1.0", "RSA2", config.alipay_public_key, config.charset, false); AlipayPassInstanceAddRequest request = new AlipayPassInstanceAddRequest(); request.BizContent = "{" + ""recognition_type":"1"," + ""tpl_id":"2019040215104450132405465"," + ""recognition_info":{"partner_id":"2088501624560335"," + ""out_trade_no":"20190218ygyg4544745451"}," + ""tpl_params":" + "{" + ""validStartDate":"2019-02-18 17:00:00"," + ""validEndDate":"2020-03-30 20:00:00"," + ""channelID":"2088522421611655"," + ""discountInfo":"凭煜雨的券即可打8.5折"," + ""code":"201901295762587i03236"," + ""useStateDesc":"可使用"," + ""logoText":"疯狂来电85折券"," + ""serialNumber":"20190402ygyg00001"}}"; AlipayPassInstanceAddResponse response = client.Execute(request); Response.Write(response.Body);
响应参数返回示例
{"alipay_pass_instance_add_response":{"code":"10000","msg":"Success","result":