test.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. 'use strict';
  2. /**
  3. * 此处建议只改下订单状态,保证能及时返回给第三方支付服务器成功状态
  4. * 限制4秒内必须执行完全部的异步回调逻辑,建议将消息发送、返佣、业绩结算等业务逻辑异步处理(如用定时任务去处理这些异步逻辑)
  5. * 建议再判断下金额和你业务系统订单中的金额是否一致
  6. */
  7. const payCrypto = require('../libs/crypto.js'); // 获取加密服务
  8. module.exports = async (obj) => {
  9. let user_order_success = true;
  10. let { data = {} } = obj;
  11. let {
  12. order_no,
  13. out_trade_no,
  14. total_fee
  15. } = data; // uni-pay-orders 表内的数据均可获取到
  16. console.log("type:test");
  17. // 此处写你自己的支付成功逻辑开始-----------------------------------------------------------
  18. // 有三种方式
  19. // 方式一:直接写数据库操作
  20. // 方式二:使用 await uniCloud.callFunction 调用其他云函数或云对象,云对象则使用 uniCloud.importObject('云对象名称')来请求
  21. // 方式三:使用 await uniCloud.httpclient.request 调用http接口地址
  22. /*
  23. // 方式二安全模式一(加密)
  24. let encrypted = payCrypto.aes.encrypt({
  25. data: data, // 待加密的原文
  26. });
  27. await uniCloud.callFunction({
  28. name: "你的云函数名称",
  29. data: {
  30. encrypted, // 传输加密数据
  31. },
  32. });
  33. */
  34. /*
  35. // 方式二安全模式二(只传一个订单号 out_trade_no,你自己的回调里查数据库表 uni-pay-orders 判断 status是否等于1来判断是否真的支付了)
  36. await uniCloud.callFunction({
  37. name: "你的云函数名称",
  38. data: {
  39. out_trade_no, // 支付插件订单号
  40. },
  41. });
  42. */
  43. /*
  44. // 方式三安全模式一(加密)
  45. let encrypted = payCrypto.aes.encrypt({
  46. data: data, // 待加密的原文
  47. });
  48. await uniCloud.httpclient.request("你的服务器接口请求地址", {
  49. method: "POST",
  50. data: {
  51. encrypted, // 传输加密数据
  52. },
  53. });
  54. */
  55. /*
  56. // 方式三安全模式二(只传一个订单号 out_trade_no,你自己的回调里执行url请求来请求 uni-pay-co 云对象的 getOrder 接口来判断订单是否真的支付了)
  57. await uniCloud.httpclient.request("你的服务器接口请求地址", {
  58. method: "POST",
  59. data: {
  60. out_trade_no, // 支付插件订单号
  61. },
  62. });
  63. */
  64. // 此处写你自己的支付成功逻辑结束-----------------------------------------------------------
  65. // user_order_success = true 代表你自己的逻辑处理成功 返回 false 代表你自己的处理逻辑失败。
  66. return user_order_success;
  67. };