您的位置:

支付宝开放平台支付接口——pay/unifiedorder

一、接口介绍

pay/unifiedorder是支付宝开放平台提供的支付接口,主要用于商户发起支付请求,获取预支付订单号(prepare_id)并生成支付二维码,用户扫码完成支付流程。该接口支持多种交易场景,包括APP、小程序、H5等。

二、接口参数

支付宝开放平台提供了详细的pay/unifiedorder接口参数,其中必传参数包括app_id、out_trade_no、total_amount、subject、product_code等。其他可选参数包括timeout_express、passback_params等。下面是一个示例参数:

{
    "app_id":"2016110100792789",
    "method":"alipay.trade.precreate",
    "format":"JSON",
    "charset":"utf-8",
    "sign_type":"RSA2",
    "timestamp":"2018-01-01 00:00:00",
    "version":"1.0",
    "notify_url":"http://www.yourdomain.com/notify_url",
    "biz_content":{
        "out_trade_no":"20150401005",
        "total_amount":88.88,
        "subject":"Iphone6 16G",
        "store_id":"NJ_001",
        "timeout_express":"5m",
        "seller_id":"2088102146225135"
    }
}

三、调用流程

pay/unifiedorder接口调用流程分为请求和响应两部分。

请求流程:商户向支付宝发送支付请求,包括APPID、商户订单号、付款金额、商品描述等,同时计算签名并携带签名一起发送。

响应流程:支付宝收到请求后校验APPID和签名,校验通过后生成预支付订单(prepare_id),并返回给商户二维码(code_url)和支付宝订单号(trade_no)。

四、代码示例

下面是使用Node.js调用pay/unifiedorder接口的示例代码:

const AlipaySdk = require('alipay-sdk').default;
const AlipayFormData = require('alipay-sdk/lib/form').default;
const alipaySdk = new AlipaySdk({
    appId: 'app_id',
    privateKey: 'private_key',
    signType: 'RSA2',
    alipayPublicKey: 'alipay_public_key',
});
const formData = new AlipayFormData();
formData.setMethod('get');
formData.addField('return_url', 'http://www.yourdomain.com/return_url');
formData.addField('notify_url', 'http://www.yourdomain.com/notify_url');
formData.addField('biz_content', {
    out_trade_no: 'out_trade_no',
    product_code: 'FAST_INSTANT_TRADE_PAY',
    total_amount: '0.01',
    subject: 'subject',
});
const result = await alipaySdk.exec(
    'alipay.trade.precreate',
    {},
    { formData: formData },
);

五、常见问题

1、支付宝开放平台的appid在哪里申请?

支付宝开放平台的appid需要在支付宝开放平台注册并审核通过后获取。

2、为什么调用pay/unifiedorder接口返回“支付宝合作伙伴账户余额不足”?

这可能是由于支付宝账户余额不足导致的,请检查账户余额是否充足。

3、支付宝交易账单是在哪里查看?

支付宝交易账单可以在支付宝开放平台账户中心-交易记录中查看。