TransactionServiceTest.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace SixShop\Lakala\Service;
  3. use PHPUnit\Framework\TestCase;
  4. use SixShop\Lakala\Dto\LocationInfo;
  5. use SixShop\Lakala\OpenAPISDK\V3\Model\TradePreorderWechaAccBusiFields;
  6. use SixShop\Lakala\OpenAPISDK\V3\Model\TradePreorderWechaDetail;
  7. use SixShop\Lakala\OpenAPISDK\V3\Model\TradePreorderWechaGoodsDetail;
  8. use SixShop\Payment\Enum\NumberBizEnum;
  9. class TransactionServiceTest extends TestCase
  10. {
  11. private TransactionService $transactionService;
  12. protected function setUp(): void
  13. {
  14. $this->transactionService = app(TransactionService::class);
  15. }
  16. public function testPreOrder()
  17. {
  18. $totalAmount = .01;
  19. // 微信主扫场景 - 账户端业务信息
  20. $accBusiFields = new TradePreorderWechaAccBusiFields();
  21. $accBusiFields->setTimeoutExpress('');
  22. $accBusiFields->setSubAppid('wx1308d811d01639eb');
  23. $accBusiFields->setUserId('oPuRO15wmxv3AwRyEznRfuDLehrk');
  24. $accBusiFields->setDetail('');
  25. $accBusiFields->setGoodsTag('');
  26. $accBusiFields->setAttach('');
  27. $accBusiFields->setDeviceInfo('');
  28. $accBusiFields->setLimitPay('');
  29. $accBusiFields->setSceneInfo('');
  30. $accBusiFields->setLimitPayer('');
  31. $detail = new TradePreorderWechaDetail();
  32. $detail->setCostPrice($totalAmount);
  33. $detail->setReceiptId('');
  34. $goodsDetail = new TradePreorderWechaGoodsDetail();
  35. $goodsDetail->setGoodsId('3452234');
  36. $goodsDetail->setWxpayGoodsId('');
  37. $goodsDetail->setGoodsName('');
  38. $goodsDetail->setQuantity(1);
  39. $goodsDetail->setPrice($totalAmount);
  40. $detail->setGoodsDetail([$goodsDetail]);
  41. $accBusiFields->setDetail($detail);
  42. $this->transactionService->preOrder(
  43. outTradeNo: generate_number(NumberBizEnum::ORDER_PAY),
  44. totalAmount: $totalAmount,
  45. locationInfo: new LocationInfo(requestIP: '183.214.109.50'),
  46. subject: '测试订单',
  47. accBusiFields: $accBusiFields,
  48. );
  49. }
  50. }