nodjes 支付宝接口 - 优惠卷

本文介绍了一个使用Node.js实现的支付宝营销活动优惠券模板查询API的示例代码。该示例展示了如何设置业务参数、公共参数,进行参数排序、字符串转换及签名加密处理,并最终发送请求至支付宝网关。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const crypto  = require('crypto');
const request = require('request');
const qs      = require('qs');

let config = {
    appId: '1234567890',
    gatewayUrl: 'https://openapi.alipay.com/gateway.do',
    privateKey: 'PKCS1(非JAVA适用)私钥',
    publicKey: '支付宝公钥',
};

/**
 * 定义业务参数
 */
let biz_content = {
	create_start_time: '2017-11-30 00:00:01',
	create_end_time: '2017-12-01 23:59:59',
	page_num: 1,
	page_size: 20
};

/**
 * 定义公共参数
 */
let data = {
    app_id: config.appId,
    version: '1.0',
    format: 'json',
    sign_type: 'RSA2',
    method: 'alipay.marketing.voucher.templatelist.query',
    timestamp: "2017-12-06 11:52:01",
    auth_token: '',
    alipay_sdk: 'alipay-sdk-php-20161101',
    charset: 'utf-8',
    biz_content: JSON.stringify(biz_content),
    app_auth_token: '授权给商户的token',
};

/**
 * 参数排序,转换为字符串
 */
let params = [];
for(let name in data) {
	let val = data[name];
	if (name == 'sign' || !val) {
		continue;
	}
	params.push(`${name}=${val}`);
}
let queryStr = params.sort().join('&');

/**
 * sign加密处理
 */
let key = "-----BEGIN RSA PRIVATE KEY-----\n" +
    (function() {
        let arr = [];
        let offset = 0;
        while (true) {
            let str = config.privateKey.substr(offset, 64);
            if (str == '') {
                break;
            }
            arr.push(str);
            offset += 64;
        }
        return arr.join("\n");
    })() +
    "\n-----END RSA PRIVATE KEY-----";
let sign = crypto.createSign('RSA-SHA256');
sign.update(queryStr);
data.sign = sign.sign(key, 'base64');

/**
 * 发送请求
 */
let url = config.gatewayUrl + '?' + qs.stringify(data);
request.get(url, function(e, response, res) {
	console.log(res);
});

商户:授权,获得app auth token,创建优惠卷

用户:访问链接,根据merchant_pid,shop_id 获得优惠卷模版,发送优惠卷

转载于:https://my.oschina.net/qiongtaoli/blog/1585574

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值