alipay / alipay-sdk-nodejs-all

支付宝开放平台 Alipay SDK for Node.js
https://docs.open.alipay.com/54/103419/
Other
408 stars 64 forks source link

网站发起支付 alipay.trade.page.pay(统一收单下单并支付页面接口) ,sdk的返回处理有问题 #38

Closed taibushuang closed 5 years ago

taibushuang commented 5 years ago

我在沙盒环境调试的代码,确认调用成功了。调用代码如下:

const AlipaySdk = require('alipay-sdk').default;

const alipaySdk = new AlipaySdk({ appId: config.ali_appId, privateKey: fs.readFileSync(config.ali_keyPath, 'ascii'), alipayPublicKey: fs.readFileSync(config.ali_publicKeyPath, 'ascii'), gateway: 'https://openapi.alipaydev.com/gateway.do' });

//调用统一收单下单并支付页面接口 async function createTransaction(order) { let biz_content = { out_trade_no : order.orderId, product_code : 'FAST_INSTANT_TRADE_PAY', subject: '华盛顿包车1日', //order.name total_amount: order.price.toConsumer, };

const alipayMethod = 'alipay.trade.page.pay'; const alipayParams = { return_url: return_url, notify_url: notify_url, biz_content: JSON.stringify(biz_content) }; const alipayOptions = { log: logger, };

try { const result = await alipaySdk.exec(alipayMethod, alipayParams, alipayOptions); console.log(' ----------------------------------------------------------- '); console.log(result); console.log(' ----------------------------------------------------------- '); } catch (err) { console.log('err =' + JSON.stringify(err, null, 2)); } return result; }

服务器返回的302 redirect 信息被SDK处理成了错误, 进入了err的处理。 错误日志打印如下:

0|sellerBa | 2019-07-18 10:33 +08:00: err ={ 0|sellerBa | "serverResult": { 0|sellerBa | "data": "", 0|sellerBa | "status": 302, 0|sellerBa | "headers": { 0|sellerBa | "server": "Tengine/2.1.0", 0|sellerBa | "date": "Thu, 18 Jul 2019 02:33:07 GMT", 0|sellerBa | "content-type": "application/octet-stream", 0|sellerBa | "connection": "keep-alive, keep-alive", 0|sellerBa | "set-cookie": [ 0|sellerBa | "zone=GZ00B; Domain=.alipaydev.com; Path=/", 0|sellerBa | "JSESSIONID=4AB5080B689646890ED9C86165DF39E1; Path=/; HttpOnly", 0|sellerBa | "ALIPAYJSESSIONID=GZ001D1YdXp3guiwtCdXdr9TYuLakPsuperapiGZ00; Domain=.alipaydev.com; Path=/", 0|sellerBa | "ctoken=xRBJpHY1rBZb-1Ta; Domain=.alipaydev.com; Path=/", 0|sellerBa | "spanner=r7Gde3HSucXTedbI2QGl1ewBN9Uv8Bn2Xt2T4qEYgj0=;path=/;secure;" 0|sellerBa | ], 0|sellerBa | "location": "http://unitradeprod.alipaydev.com/appAssign.htm?alipay_exterface_invoke_assign_target=invoke_bf9b4b35983b19c4ad87e1dc4be1aebe&alipay_exterface_invoke_assign_sign=_r_i_fog9u_gu_th_u_qt0_v_y_rkg%2F1u_z8_i_ye2b9p_rv_eydoj1w_t5_j_z_r4n7_e_oyu_a%3D%3D", 0|sellerBa | "content-length": "0", 0|sellerBa | "via": "gateway-2-1-3.daily.alipay.net[302],11.166.43.162:80[302]" 0|sellerBa | }, 0|sellerBa | "res": { 0|sellerBa | "status": 302, 0|sellerBa | "statusCode": 302, 0|sellerBa | "statusMessage": "Found", 0|sellerBa | "headers": { 0|sellerBa | "server": "Tengine/2.1.0", 0|sellerBa | "date": "Thu, 18 Jul 2019 02:33:07 GMT", 0|sellerBa | "content-type": "application/octet-stream", 0|sellerBa | "connection": "keep-alive, keep-alive", 0|sellerBa | "set-cookie": [ 0|sellerBa | "zone=GZ00B; Domain=.alipaydev.com; Path=/", 0|sellerBa | "JSESSIONID=4AB5080B689646890ED9C86165DF39E1; Path=/; HttpOnly", 0|sellerBa | "ALIPAYJSESSIONID=GZ001D1YdXp3guiwtCdXdr9TYuLakPsuperapiGZ00; Domain=.alipaydev.com; Path=/", 0|sellerBa | "ctoken=xRBJpHY1rBZb-1Ta; Domain=.alipaydev.com; Path=/", 0|sellerBa | "spanner=r7Gde3HSucXTedbI2QGl1ewBN9Uv8Bn2Xt2T4qEYgj0=;path=/;secure;" 0|sellerBa | ], 0|sellerBa | "location": "http://unitradeprod.alipaydev.com/appAssign.htm?alipay_exterface_invoke_assign_target=invoke_bf9b4b35983b19c4ad87e1dc4be1aebe&alipay_exterface_invoke_assign_sign=_r_i_fog9u_gu_th_u_qt0_v_y_rkg%2F1u_z8_i_ye2b9p_rv_eydoj1w_t5_j_z_r4n7_e_oyu_a%3D%3D", 0|sellerBa | "content-length": "0", 0|sellerBa | "via": "gateway-2-1-3.daily.alipay.net[302],11.166.43.162:80[302]" 0|sellerBa | }, 0|sellerBa | "size": 0, 0|sellerBa | "aborted": false, 0|sellerBa | "rt": 467, 0|sellerBa | "keepAliveSocket": false, 0|sellerBa | "data": "", 0|sellerBa | "requestUrls": [ 0|sellerBa | "https://openapi.alipaydev.com/gateway.do?method=alipay.trade.page.pay&app_id=2016100100642440&charset=utf-8&version=1.0&sign_type=RSA2&timestamp=2019-07-18%2010%3A33%3A06&return_url=https%3A%2F%2Fd.kwibon.cn&notify_url=https%3A%2F%2Fd.kwibon.cn%2FsellerBackend%2Fapi%2Falipay%2FnotifyUrl&sign=Wp4xWdoB41AlgfdwbK2EEySLWF7mYTDm6hbJZ2pScBGNQJZOKr7npSUR%2FMG%2FW%2F6cuiK9%2FXDLjR0bea4cjBaBYXdMGOi2h0%2F7cw0OC2bWicz8AV3yV1M91GFn7X%2BC9ypMEKU2WDGlhaEzGCoD0cFZo89u6EAQRI%2FRWbwEcaktd8irRty0G%2Fobd6cER8QlWDMi4AkVxgbQQGamiJmPntM9KGauTf%2F4W6ciN5yJcXn9i4rs57W2uo3LRXSfRrgF%2BgdTyOoKovEnMMf6vP04e2jLxv7bA9Z3nReu1Qqw9fV68S4KHKN52Cs9zliUNGYpBRpDGibvhZf25LAcrvCniJI2xQ%3D%3D" 0|sellerBa | ], 0|sellerBa | "timing": null, 0|sellerBa | "remoteAddress": "198.11.186.9", 0|sellerBa | "remotePort": 443, 0|sellerBa | "socketHandledRequests": 1, 0|sellerBa | "socketHandledResponses": 1 0|sellerBa | } 0|sellerBa | }, 0|sellerBa | "errorMessage": "[AlipaySdk]HTTP 请求错误" 0|sellerBa | }

tudou527 commented 5 years ago

看这份文档:https://www.yuque.com/chenqiu/alipay-node-sdk/page_api

adam1985 commented 3 years ago

@taibushuang 这个问题怎么解决的?