全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: zhongziso

66的chatgpt源码对接易支付搞定了

[复制链接]
发表于 2023-6-16 20:36:52 | 显示全部楼层
机长 发表于 2023-6-16 20:34
没有设置回传的地方

你可以到我的网站试试,我没有改支付部分的源代码,支付宝当面付也是按照官方文档设置的,没有发现所谓“回传”问题

“https://chatai.my.id”
发表于 2023-6-16 20:43:37 | 显示全部楼层
机长 发表于 2023-6-16 19:06
当面付还有问题 不能回传
  1. try {
  2.         if (req.body?.channel && req.body?.channel === 'alipay') {
  3.             const { body, out_trade_no, trade_status, trade_no } = req.body;
  4.                         // 获取订单信息根据回调订单号查询
  5.             const orderInfo = await models_1.orderModel.getOrderInfo(out_trade_no);
  6.                         // 判断订单不存在 或者 点点多状态是未支付直接返回结束
  7.             if (!orderInfo || (orderInfo.trade_status !== 'TRADE_AWAIT' && orderInfo.trade_status !== 'WAIT_BUYER_PAY')) {
  8.                 res.json('fail');
  9.                 return;
  10.             }
  11.             const { payment_id, user_id, product_id } = JSON.parse(body);
  12.                         // 校验签名
  13.             const isCheck = await checkNotifySign(payment_id, req.body, req.body?.channel);
  14.             if (!isCheck) {
  15.                 res.json('fail');
  16.                 return;
  17.             }

  18.                         //在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。
  19.                         //如果签约的产品支持退款,并且对应的产品默认支持能收到 TRADE_SUCCESS 或 TRADE_FINISHED 状态,该笔交易会先收到 TRADE_SUCCESS 交易状态,然后默认12个月该笔交易会再次收到 TRADE_FINISHED 状态。实际该笔交易只支付了一次,切勿认为该笔交易支付两次。
  20.                         if (trade_status !== 'TRADE_SUCCESS') {
  21.                                 // 修改订单信息
  22.                                 await models_1.orderModel.editOrder({
  23.                                         id: out_trade_no,
  24.                                         trade_status,
  25.                                         trade_no,
  26.                                         notify_info: JSON.stringify(req.body)
  27.                                 });
  28.                                 res.json('success');
  29.                                 return;
  30.                         }

  31.             const modifyResult = await batchModify({
  32.                 order_id: out_trade_no,
  33.                 trade_status,
  34.                 trade_no,
  35.                 notify_info: JSON.stringify(req.body),
  36.                 user_id,
  37.                 product_id
  38.             });
  39.             if (!modifyResult) {
  40.                 res.json('fail');
  41.                 return;
  42.             }
  43.         }
  44.         if (req.query?.channel && req.query?.channel === 'yipay') {
  45.             const { out_trade_no, trade_status, trade_no } = req.query;
  46.             const orderInfo = await models_1.orderModel.getOrderInfo(out_trade_no);
  47.             if (!orderInfo || orderInfo.trade_status !== 'WAIT_BUYER_PAY') {
  48.                 res.json('fail');
  49.                 return;
  50.             }
  51.             const { payment_id, user_id, product_id } = JSON.parse(decodeURIComponent(req.query?.param));
  52.             const isCheck = await checkNotifySign(payment_id, req.query, req.query?.channel);
  53.             if (!isCheck) {
  54.                 res.json('fail');
  55.                 return;
  56.             }
  57.             const modifyResult = await batchModify({
  58.                 order_id: out_trade_no,
  59.                 trade_status,
  60.                 trade_no,
  61.                 notify_info: JSON.stringify(req.query),
  62.                 user_id,
  63.                 product_id
  64.             });
  65.             if (!modifyResult) {
  66.                 res.json('fail');
  67.                 return;
  68.             }
  69.         }
  70.     }
复制代码

  1. {
  2.                         title: '订单状态',
  3.                         dataIndex: 'trade_status',
  4.                         width: 180,
  5.                         render: (_, data) => {
  6.                                 const status: { [key: string]: { [key: string]: string } } = {
  7.                                         TRADE_AWAIT: {
  8.                                                 color: 'orange',
  9.                                                 text: '等待支付'
  10.                                         },
  11.                                         WAIT_BUYER_PAY: {
  12.                                                 color: 'orange',
  13.                                                 text: '等待支付'
  14.                                         },
  15.                                         TRADE_SUCCESS: {
  16.                                                 color: 'green',
  17.                                                 text: '支付成功'
  18.                                         },
  19.                                         TRADE_CLOSED: {
  20.                                                 color: 'red',
  21.                                                 text: '订单关闭'
  22.                                         },
  23.                                         TRADE_FINISHED: {
  24.                                                 color: 'purple',
  25.                                                 text: '订单完毕'
  26.                                         }
  27.                                 }
  28.                                 return <Tag color={status[data.trade_status].color}>{status[data.trade_status].text}</Tag>
  29.                         }
  30.                 },
复制代码



试试看 我自己改了下。。我这边是因为当面付创建订单了有回调。之前的代码是支付宝有回调就支付成功了。代码里面没判断回调状态    然后就一直未付款
发表于 2023-6-16 21:12:42 | 显示全部楼层
MARK一下
发表于 2023-6-16 23:17:40 | 显示全部楼层
本帖最后由 机长 于 2023-6-16 23:23 编辑
shazhumaiyou 发表于 2023-6-16 20:43
试试看 我自己改了下。。我这边是因为当面付创建订单了有回调。之前的代码是支付宝有回调就支付成功 ...


对,就是这个问题, 而且订单状态 “WAIT_BUYER_PAY" 后台会报错
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2025-12-26 14:13 , Processed in 0.083986 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表