天天看點

收發現金紅包——alipay.fund.coupon.order.agreement.pay(紅包協定支付接口)一、注意事項二、參數說明三、接口請求示例四、異步通知

接口名稱:紅包協定支付接口

英文名稱:alipay.fund.coupon.order.agreement.pay

産品首頁:[url]https://openclub.alipay.com/read.php?tid=12180&fid=72[/url]

下一步:[url]https://openclub.alipay.com/read.php?tid=13609&fid=72[/url]

一、注意事項

1、适用于商戶直接扣除自己賬戶中的金額。

2、紅包協定支付調用方法是execute();

3、如何擷取payee_user_id參數值

payee_user_id:收款方的支付寶唯一使用者号,以2088開頭的16位純數字組成;

使用者領取紅包時需在紅包打款接口中設定payee_user_id,該參數值可通過使用者資訊授權或者調用“APP支付寶登入”接口獲得使用者支付寶UID,使用者領取成功後調用打款接口,資金打款到使用者對應支付寶賬戶。

二、參數說明

1、payer_user_id:付款方的支付寶唯一使用者号(必須為調用接口appid對應的pid);

2、 pay_timeout:該筆訂單允許的最晚付款時間,逾期将關閉該筆訂單,取值範圍:1m~7d(可能存在對方賬戶餘額不足或網絡、系統等原因沒有扣款成功);

3、 extra_param:業務擴充參數,用于商戶的特定業務資訊的傳遞,json格式設定,

(1)擴充字段中傳入orderExpiredTime=1m(指定建立紅包後,超過1分鐘未被打款(調用打款接口)則自動退款);

示例:extra_param:{ "merchantExt":"orderExpiredTime=1m"},該參數設定在其他支付接口,沒有報錯,但是也沒有生效,隻應用于紅包協定支付接口;

(2)pay_timeout是指交易建立後設定的最晚付款時間,不同于orderExpiredTime;

三、接口請求示例

JAVA版請求示例

public static void main(String[] args) throws AlipayApiException {
	        //在SDK調用前需要進行初始化
			AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, AlipayConfig.format, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
	        AlipayFundCouponOrderAgreementPayRequest request = new AlipayFundCouponOrderAgreementPayRequest();
	        AlipayFundCouponOrderAgreementPayModel model = new AlipayFundCouponOrderAgreementPayModel();
	        //商戶的授權資金訂單号 (自己填寫,必須保證唯一性)
	        model.setOutOrderNo(getoutOrderNo());
	        //商戶本次資金操作的請求流水号 (自己填寫,必須保證唯一性)
	        model.setOutRequestNo(getoutOrderNo()+"test");
	        //訂單描述
	        model.setOrderTitle("紅包協定支付接口");
	        //金額,取值範圍:[0.01,100000000.00]
	        model.setAmount("0.01");
	        //付款方的支付寶唯一使用者号,以2088開頭的16位純數字組成,調用接口賬戶關聯的付款賬戶
	        model.setPayerUserId("商家2088開頭的資訊(此處脫敏)");
	        //該筆訂單允許的最晚付款時間
	        model.setPayTimeout("1h");
	        request.setBizModel(model);
	        AlipayFundCouponOrderAgreementPayResponse response = alipayClient.execute(request);
	        if(response.isSuccess()){
	            System.out.println("調用成功!");
	        }else {
	            System.out.println("調用失敗!");
	        }
	        System.out.println(response.getBody());
	}
	      
	    /**
	     * 随機生成訂單号
	     * @return
	     */
	    private static String getoutOrderNo() {
	        // TODO Auto-generated method stub
	         SimpleDateFormat simpleDateFormat;
	         simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
	         Date date = new Date();
	         String str = simpleDateFormat.format(date);
	         Random random = new Random();
	         int rannum = (int) (random.nextDouble() * (999 - 100 + 1)) + 100;// 擷取5位随機數
	         return str+rannum;// 目前時間
	    }
}      

響應參數:

{"alipay_fund_coupon_order_agreement_pay_response":{"code":"10000","msg":"Success","amount":"0.01","auth_no":"2019010210002001330220511356","gmt_trans":"2019-01-02 17:12:30","operation_id":"20190102652066653302","out_order_no":"20190102171229111","out_request_no":"20190102171229648test","status":"SUCCESS"},"sign":"bT6Y1TyQnGxSmylf7HD/lN8+L4kBe5tyyYYiVjcqFnMzkBIbxtAnJfUSV5Luup/puxsJ6Ws8HliTuzvTX3dqk098z3Fv1kYhW2AqNNst20evLn/WzJg7pwRieXcyye2EZJKfO6eF4krLp6Wci0fw7xwspfV9+KiB2W8WtUdGSEwLRi+5CIoYDBQMYZWW8txDWzYKGl6/O+DNn3B+AoinNV4QilL4llp5++B+gOpsNQwdRd62IZ26Zcks1glGJUrixpu0GB+nDHkPn0byYM52OOOATKD/LOTRkWBzf2VYXAjBrecj2vXYbT8AAUud+IH8/fMBfX0wkN/xHaOIIVBbUw=="}      

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 AlipayFundCouponOrderAgreementPayRequest ();
$request->setBizContent("{" .
			""out_order_no":"80777352559380458"," .
			""out_request_no":"8077735255634078"," .
			""order_title":"紅包協定支付接口"," .
			""amount":1.00," .
			""payer_user_id":"商家2088開頭的資訊(此處脫敏)"," .
			""pay_timeout":"1h"" .
// 			""extra_param":"{\"merchantExt\":\"key=value\"}"".
			"}");
// $request->setNotifyUrl('請填寫您的異步通知位址');
$result = $aop->execute ( $request);
var_dump($result);      

響應參數

public 'alipay_fund_coupon_order_agreement_pay_response' => 
    object(stdClass)[9]
      public 'code' => string '10000' (length=5)
      public 'msg' => string 'Success' (length=7)
      public 'amount' => string '1.00' (length=4)
      public 'auth_no' => string '2019030610002001330238463473' (length=28)
      public 'gmt_trans' => string '2019-03-06 16:51:14' (length=19)
      public 'operation_id' => string '20190306796824493302' (length=20)
      public 'out_order_no' => string '80777352559380458' (length=17)
      public 'out_request_no' => string '8077735255634078' (length=16)
      public 'status' => string 'SUCCESS' (length=7)
  public 'sign' => string 'f+z581OHP+jqI/lyPfnEWPeOPiAS0z4HghfC6cyZfw0342lZnfUJBd5XU4ELRrZeSnJHxRx6hByFkeiOKGFZELiUanbcJfoHRJbrLJG0pPU0Y62oTLEzQjFhjPqhmZU6BXzZjgXU0h8WvGQ2x+fErkk0BGqtKkScXIymiVGMj30aswJzaZgHpcuGtg2x0vOdy+kz4rVIha8xCJVIjUXBNMUqfSJw3Mb15HuSVCVi36lCj03AW57BRMe5T2VCGG0SfPDRNWlLIiO9RM1k5hpxC4iSl1quoDfk8NzgoLKkJOMV82p5ySg6+qbqpLh1h0XUkTSbPTdESDX4iNqpyBz9JQ==' (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);


        AlipayFundCouponOrderAgreementPayRequest request = new AlipayFundCouponOrderAgreementPayRequest();
        request.BizContent="{" +
        ""out_order_no":"20190102171229111"," +
			""out_request_no":"20190102171229648test"," +
			""order_title":"紅包協定支付接口"," +
			""amount":0.01," +
			""payer_user_id":"商家2088開頭的資訊(此處脫敏)"," +
			""pay_timeout":"1h"" +
// 			""extra_param":"{\"merchantExt\":\"key=value\"}""+
        "  }";

        AlipayFundCouponOrderAgreementPayResponse response = client.execute(request);
        Response.Write(response.Body);      
{"alipay_fund_coupon_order_agreement_pay_response":{"code":"10000","msg":"Success","amount":"0.01","auth_no":"2019010210002001330220511356","gmt_trans":"2019-01-02 17:12:30","operation_id":"20190102652066653302","out_order_no":"20190102171229111","out_request_no":"20190102171229648test","status":"SUCCESS"},"sign":"bT6Y1TyQnGxSmylf7HD/lN8+L4kBe5tyyYYiVjcqFnMzkBIbxtAnJfUSV5Luup/puxsJ6Ws8HliTuzvTX3dqk098z3Fv1kYhW2AqNNst20evLn/WzJg7pwRieXcyye2EZJKfO6eF4krLp6Wci0fw7xwspfV9+KiB2W8WtUdGSEwLRi+5CIoYDBQMYZWW8txDWzYKGl6/O+DNn3B+AoinNV4QilL4llp5++B+gOpsNQwdRd62IZ26Zcks1glGJUrixpu0GB+nDHkPn0byYM52OOOATKD/LOTRkWBzf2VYXAjBrecj2vXYbT8AAUud+IH8/fMBfX0wkN/xHaOIIVBbUw=="}      

四、異步通知

觸發通知類型

收發現金紅包——alipay.fund.coupon.order.agreement.pay(紅包協定支付接口)一、注意事項二、參數說明三、接口請求示例四、異步通知

異步通知示例

支付成功後,觸發異步通知,notify_url位址接收通知如下:

http://支付接口設定的異步位址?notify_type=fund_auth_pay&notify_id=91722adff935e8cfa58b3aabf4dead6ibe&notify_time=2017-02-16 21:46:15&sign_type=RSA2&sign=WcO+t3D8Kg71dTlKwN7r9PzUOXeaBJwp8/FOuSxcuSkXsoVYxBpsAidprySCjHCjmaglNcjoKJQLJ28/Asl93joTW39FX6i07lXhnbPknezAlwmvPdnQuI01HZsZF9V1i6ggZjBiAd5lG8bZtTxZOJ87ub2i9GuJ3Nr/NUc9VeY=&auth_no=null&out_order_no=null&operation_id=null&out_request_no=null&operation_type=PAY&amount=null&status=SUCCESS&gmt