一、接口介绍
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、支付宝交易账单是在哪里查看?
支付宝交易账单可以在支付宝开放平台账户中心-交易记录中查看。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/155142.html
微信扫一扫
支付宝扫一扫