Index.cshtml 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. @{
  2. ViewData["Title"] = ".Net Core 支付产品示例";
  3. }
  4. <div id="wrapper">
  5. <div id="header">
  6. <h2>@ViewData["Title"]</h2>
  7. </div>
  8. <div id="tabs-api">
  9. <ul>
  10. <li><a href="#tabs-api-1">前言</a></li>
  11. <li><a href="#tabs-api-alipay">支付宝示例</a></li>
  12. <li><a href="#tabs-api-wechatpay">微信支付示例</a></li>
  13. <li><a href="#tabs-api-qpay">QQ钱包示例</a></li>
  14. <li><a href="#tabs-api-jdpay">京东支付示例</a></li>
  15. </ul>
  16. <div id="tabs-api-1">
  17. <h3>官方文档/帮助:</h3>
  18. <p>支付宝:<a href="https://openhome.alipay.com/developmentDocument.htm" target="_blank">文档中心</a>、<a href="https://open.alipay.com/support/supportCenter.htm" target="_blank">技术支持中心</a>、<a href="https://openclub.alipay.com/index.php" target="_blank">开发者社区</a></p>
  19. <p>微信支付:<a href="https://pay.weixin.qq.com/wiki/doc/api/index.html" target="_blank">开发文档</a>、<a href="http://wxpay.wxutil.com/qa/index.php" target="_blank">问答中心</a>、<a href="http://kf.qq.com/product/wechatpaymentmerchant.html" target="_blank">帮助中心</a></p>
  20. <p>QQ钱包:<a href="https://qpay.qq.com/qpaywiki.shtml" target="_blank">开发文档</a>、<a href="http://kf.qq.com/product/qq_enterprise.html" target="_blank">帮助中心</a></p>
  21. <p>京东支付:<a href="http://payapi.jd.com/" target="_blank">开发文档</a></p>
  22. <h3>*添加依赖注入:</h3>
  23. <p>
  24. services.AddAlipay();<br />
  25. services.AddWeChatPay();<br />
  26. services.AddQPay();<br />
  27. services.AddJdPay();
  28. </p>
  29. <h3>*注册绑定配置(参数配置3):</h3>
  30. <p>
  31. services.Configure<AlipayOptions>
  32. (Configuration.GetSection("Alipay"));<br />
  33. services.Configure<WeChatPayOptions>
  34. (Configuration.GetSection("WeChatPay"));<br />
  35. services.Configure<QPayOptions>
  36. (Configuration.GetSection("QPay"));<br />
  37. services.Configure<JdPayOptions>(Configuration.GetSection("JdPay"));
  38. </p>
  39. <h3>*参数配置方式(3选1,推荐使用3):</h3>
  40. <p>1.使用代码配置如:services.AddAlipay(Options => { Options.AppId = ""; });</p>
  41. <p>2.使用<a href="https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration?tabs=basicconfiguration" target="_blank">"配置文件"</a>的方式,可在appsetting.json、appsettings.Development.json设置参数</p>
  42. <p>3.使用<a href="https://docs.microsoft.com/zh-cn/aspnet/core/security/app-secrets?tabs=visual-studio" target="_blank">"用户机密"</a>的方式,可在VS中右键项目->管理用户机密,再设置参数(与2相似)。</p>
  43. <p>*参数详情可见Startup.cs文件的ConfigureServices方法下的注释代码"配置参数"。</p>
  44. <p>*WeChatPay,QPay中的Certificate参数可以是文件名或者Base64字符串(将证书文件转成Base64,方便配置存储)。</p>
  45. <h3>*注意:</h3>
  46. <p>1.示例开发环境:Windows10、VS2017 15.4.4、.Net Core 2.0.3</p>
  47. <p>2.支持渠道:支付宝、微信支付、QQ钱包、京东支付(仅扫码支付)。</p>
  48. <p>3.示例使用了依赖注入与用户机密(见Startup.cs文件的ConfigureServices方法),需要自行配置(可以参考上方"参数配置")。当然你不使用依赖注入方式,自己new AlipayClient(...,...)/new WeChatPayClient(...,...)再调用也可以。</p>
  49. <p>4.部分API未做示例,可根据现有示例与官网API参数文档自行调用(除京东支付外其他支付的API基本齐全了)。</p>
  50. <p>5.接收支付渠道通知(NotifyController.cs文件)需要公网环境运行(另外记得修改notify_url参数)。</p>
  51. </div>
  52. <div id="tabs-api-alipay">
  53. <div id="tabs-purchase-alipay">
  54. <ul>
  55. <li><a href="#tabs-purchase-1">网页支付</a></li>
  56. <li><a href="#tabs-purchase-2">扫码支付</a></li>
  57. <li><a href="#tabs-purchase-3">交易查询</a></li>
  58. <li><a href="#tabs-purchase-4">交易退款</a></li>
  59. <li><a href="#tabs-purchase-5">退款查询</a></li>
  60. <li><a href="#tabs-purchase-6">交易关闭</a></li>
  61. <li><a href="#tabs-purchase-7">单笔转账</a></li>
  62. <li><a href="#tabs-purchase-8">转账查询</a></li>
  63. <li><a href="#tabs-purchase-9">对账查询</a></li>
  64. </ul>
  65. <div id="tabs-purchase-1">
  66. <form class="api-form" asp-controller="Alipay" asp-action="PagePay" method="post" target="_blank">
  67. <p>
  68. <label>out_trade_no:</label>
  69. <input type="text" name="out_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  70. </p>
  71. <p>
  72. <label>subject:</label>
  73. <input type="text" name="subject" value="支付宝网页支付测试">
  74. </p>
  75. <p>
  76. <label>total_amount:</label>
  77. <input type="text" name="total_amount" value="0.01" title="单位为元,精确至小数点后2位。">
  78. </p>
  79. <p>
  80. <label>body:</label>
  81. <input type="text" name="body">
  82. </p>
  83. <p>
  84. <label>product_code:</label>
  85. <input type="text" name="product_code" value="FAST_INSTANT_TRADE_PAY">
  86. </p>
  87. <p>
  88. <label>notify_url:</label>
  89. <input type="text" name="notify_url" value="http://www.baidu.com/notify/alipay/pagepay">
  90. </p>
  91. <p>
  92. <label>return_url:</label>
  93. <input type="text" name="return_url" value="http://www.baidu.com/alipay/return">
  94. </p>
  95. <p>
  96. <label>&nbsp;</label>
  97. <input type="submit" class="button" value="提交">
  98. </p>
  99. </form>
  100. <hr />
  101. <p class="faq">
  102. <a href="https://docs.open.alipay.com/270/alipay.trade.page.pay" target="_blank">* 查看接口 请求参数、响应参数</a>
  103. </p>
  104. </div>
  105. <div id="tabs-purchase-2">
  106. <form class="api-form" asp-controller="Alipay" asp-action="PreCreate" method="post" target="_blank">
  107. <p>
  108. <label>out_trade_no:</label>
  109. <input type="text" name="out_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  110. </p>
  111. <p>
  112. <label>subject:</label>
  113. <input type="text" name="subject" value="支付宝扫码支付测试">
  114. </p>
  115. <p>
  116. <label>total_amount:</label>
  117. <input type="text" name="total_amount" value="0.01" title="单位为元,精确至小数点后2位。">
  118. </p>
  119. <p>
  120. <label>body:</label>
  121. <input type="text" name="body">
  122. </p>
  123. <p>
  124. <label>notify_url:</label>
  125. <input type="text" name="notify_url" value="http://www.baidu.com/notify/alipay/precreate">
  126. </p>
  127. <p>
  128. <label>&nbsp;</label>
  129. <input type="submit" class="button" value="提交">
  130. </p>
  131. </form>
  132. <hr />
  133. <p class="faq">
  134. <a href="https://docs.open.alipay.com/api_1/alipay.trade.precreate" target="_blank">* 查看接口 请求参数、响应参数</a>
  135. </p>
  136. </div>
  137. <div id="tabs-purchase-3">
  138. <form class="api-form" asp-controller="Alipay" asp-action="Query" method="post" target="_blank">
  139. <p>
  140. <label>out_trade_no:</label>
  141. <input type="text" name="out_trade_no">
  142. </p>
  143. <p>
  144. <label>trade_no:</label>
  145. <input type="text" name="trade_no">
  146. </p>
  147. <p>
  148. <label>&nbsp;</label>
  149. <input type="submit" class="button" value="提交">
  150. </p>
  151. </form>
  152. <hr />
  153. <p class="faq">
  154. <a href="https://docs.open.alipay.com/api_1/alipay.trade.query" target="_blank">* 查看接口 请求参数、响应参数</a>
  155. </p>
  156. </div>
  157. <div id="tabs-purchase-4">
  158. <form class="api-form" asp-controller="Alipay" asp-action="Refund" method="post" target="_blank">
  159. <p>
  160. <label>out_trade_no:</label>
  161. <input type="text" name="out_trade_no">
  162. </p>
  163. <p>
  164. <label>trade_no:</label>
  165. <input type="text" name="trade_no">
  166. </p>
  167. <p>
  168. <label>out_request_no:</label>
  169. <input type="text" name="out_request_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  170. </p>
  171. <p>
  172. <label>refund_amount:</label>
  173. <input type="text" name="refund_amount">
  174. </p>
  175. <p>
  176. <label>refund_reason:</label>
  177. <input type="text" name="refund_reason">
  178. </p>
  179. <p>
  180. <label>&nbsp;</label>
  181. <input type="submit" class="button" value="提交">
  182. </p>
  183. </form>
  184. <hr />
  185. <p class="faq">
  186. <a href="https://docs.open.alipay.com/api_1/alipay.trade.refund" target="_blank">* 查看接口 请求参数、响应参数</a>
  187. </p>
  188. </div>
  189. <div id="tabs-purchase-5">
  190. <form class="api-form" asp-controller="Alipay" asp-action="RefundQuery" method="post" target="_blank">
  191. <p>
  192. <label>out_trade_no:</label>
  193. <input type="text" name="out_trade_no">
  194. </p>
  195. <p>
  196. <label>trade_no:</label>
  197. <input type="text" name="trade_no">
  198. </p>
  199. <p>
  200. <label>out_request_no:</label>
  201. <input type="text" name="out_request_no">
  202. </p>
  203. <p>
  204. <label>&nbsp;</label>
  205. <input type="submit" class="button" value="提交">
  206. </p>
  207. </form>
  208. <hr />
  209. <p class="faq">
  210. <a href="https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query" target="_blank">* 查看接口 请求参数、响应参数</a>
  211. </p>
  212. </div>
  213. <div id="tabs-purchase-6">
  214. <form class="api-form" asp-controller="Alipay" asp-action="Close" method="post" target="_blank">
  215. <p>
  216. <label>out_trade_no:</label>
  217. <input type="text" name="out_trade_no">
  218. </p>
  219. <p>
  220. <label>trade_no:</label>
  221. <input type="text" name="trade_no">
  222. </p>
  223. <p>
  224. <label>&nbsp;</label>
  225. <input type="submit" class="button" value="提交">
  226. </p>
  227. </form>
  228. <hr />
  229. <p class="faq">
  230. <a href="https://docs.open.alipay.com/api_1/alipay.trade.close" target="_blank">* 查看接口 请求参数、响应参数</a>
  231. </p>
  232. </div>
  233. <div id="tabs-purchase-7">
  234. <form class="api-form" asp-controller="Alipay" asp-action="Trans" method="post" target="_blank">
  235. <p>
  236. <label>out_biz_no:</label>
  237. <input type="text" name="out_biz_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  238. </p>
  239. <p>
  240. <label>payee_type:</label>
  241. <input type="text" name="payee_type" value="ALIPAY_LOGONID">
  242. </p>
  243. <p>
  244. <label>payee_account:</label>
  245. <input type="text" name="payee_account">
  246. </p>
  247. <p>
  248. <label>amount:</label>
  249. <input type="text" name="amount">
  250. </p>
  251. <p>
  252. <label>remark:</label>
  253. <input type="text" name="remark">
  254. </p>
  255. <p>
  256. <label>&nbsp;</label>
  257. <input type="submit" class="button" value="提交">
  258. </p>
  259. </form>
  260. <p class="faq">
  261. <a href="https://docs.open.alipay.com/api_28/alipay.fund.trans.toaccount.transfer" target="_blank">* 查看接口 请求参数、响应参数</a>
  262. </p>
  263. </div>
  264. <div id="tabs-purchase-8">
  265. <form class="api-form" asp-controller="Alipay" asp-action="TransQuery" method="post" target="_blank">
  266. <p>
  267. <label>out_biz_no:</label>
  268. <input type="text" name="out_biz_no">
  269. </p>
  270. <p>
  271. <label>order_id:</label>
  272. <input type="text" name="order_id">
  273. </p>
  274. <p>
  275. <label>&nbsp;</label>
  276. <input type="submit" class="button" value="提交">
  277. </p>
  278. </form>
  279. <hr />
  280. <p class="faq">
  281. <a href="https://docs.open.alipay.com/api_28/alipay.fund.trans.order.query" target="_blank">* 查看接口 请求参数、响应参数</a>
  282. </p>
  283. </div>
  284. <div id="tabs-purchase-9">
  285. <form class="api-form" asp-controller="Alipay" asp-action="Close" method="post" target="_blank">
  286. <p>
  287. <label>bill_date:</label>
  288. <input type="text" name="bill_date">
  289. </p>
  290. <p>
  291. <label>bill_type:</label>
  292. <input type="text" name="bill_type">
  293. </p>
  294. <p>
  295. <label>&nbsp;</label>
  296. <input type="submit" class="button" value="提交">
  297. </p>
  298. </form>
  299. <hr />
  300. <p class="faq">
  301. <a href="https://docs.open.alipay.com/api_15/alipay.data.dataservice.bill.downloadurl.query" target="_blank">* 查看接口 请求参数、响应参数</a>
  302. </p>
  303. </div>
  304. </div>
  305. </div>
  306. <div id="tabs-api-wechatpay">
  307. <div id="tabs-purchase-wechatpay">
  308. <ul>
  309. <li><a href="#tabs-purchase-1">扫码支付</a></li>
  310. <li><a href="#tabs-purchase-2">公众号支付</a></li>
  311. <li><a href="#tabs-purchase-3">查询订单</a></li>
  312. <li><a href="#tabs-purchase-4">关闭订单</a></li>
  313. <li><a href="#tabs-purchase-5">申请退款</a></li>
  314. <li><a href="#tabs-purchase-6">查询退款</a></li>
  315. <li><a href="#tabs-purchase-7">下载对账单</a></li>
  316. <li><a href="#tabs-purchase-8">企业付款到零钱</a></li>
  317. <li><a href="#tabs-purchase-9">查询付款</a></li>
  318. <li><a href="#tabs-purchase-10">获取RSA加密公钥</a></li>
  319. <li><a href="#tabs-purchase-11">企业付款到银行卡</a></li>
  320. <li><a href="#tabs-purchase-12">查询企业付款银行卡</a></li>
  321. </ul>
  322. <div id="tabs-purchase-1">
  323. <form class="api-form" asp-controller="WeChatPay" asp-action="UnifiedOrder" method="post" target="_blank">
  324. <p>
  325. <label>out_trade_no:</label>
  326. <input type="text" name="out_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  327. </p>
  328. <p>
  329. <label>body:</label>
  330. <input type="text" name="body" value="微信扫码支付测试">
  331. </p>
  332. <p>
  333. <label>total_fee:</label>
  334. <input type="text" name="total_fee" value="1" title="单位为分。">
  335. </p>
  336. <p>
  337. <label>spbill_create_ip:</label>
  338. <input type="text" name="spbill_create_ip" value="127.0.0.1">
  339. </p>
  340. <p>
  341. <label>notify_url:</label>
  342. <input type="text" name="notify_url" value="http://www.baidu.com/notify/wechatpay">
  343. </p>
  344. <p>
  345. <label>trade_type:</label>
  346. <input type="text" name="trade_type" value="NATIVE">
  347. </p>
  348. <p>
  349. <label>&nbsp;</label>
  350. <input type="submit" class="button" value="提交">
  351. </p>
  352. </form>
  353. <p class="faq">
  354. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_1" target="_blank">* 查看接口 请求参数、响应参数</a>
  355. </p>
  356. </div>
  357. <div id="tabs-purchase-2">
  358. <form class="api-form" asp-controller="WeChatPay" asp-action="UnifiedOrder" method="post" target="_blank">
  359. <p>
  360. <label>out_trade_no:</label>
  361. <input type="text" name="out_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  362. </p>
  363. <p>
  364. <label>body:</label>
  365. <input type="text" name="body" value="微信公众号支付支付测试">
  366. </p>
  367. <p>
  368. <label>total_fee:</label>
  369. <input type="text" name="total_fee" value="1" title="单位为分。">
  370. </p>
  371. <p>
  372. <label>spbill_create_ip:</label>
  373. <input type="text" name="spbill_create_ip" value="127.0.0.1">
  374. </p>
  375. <p>
  376. <label>notify_url:</label>
  377. <input type="text" name="notify_url" value="http://www.baidu.com/notify/wechatpay">
  378. </p>
  379. <p>
  380. <label>trade_type:</label>
  381. <input type="text" name="trade_type" value="JSAPI">
  382. </p>
  383. <p>
  384. <label>openid:</label>
  385. <input type="text" name="openid" value="">
  386. </p>
  387. <p>
  388. <label>&nbsp;</label>
  389. <input type="submit" class="button" value="提交">
  390. </p>
  391. </form>
  392. <p class="faq">
  393. <a href="https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1" target="_blank">* 查看接口 请求参数、响应参数</a>
  394. </p>
  395. </div>
  396. <div id="tabs-purchase-3">
  397. <form class="api-form" asp-controller="WeChatPay" asp-action="OrderQuery" method="post" target="_blank">
  398. <p>
  399. <label>transaction_id:</label>
  400. <input type="text" name="transaction_id">
  401. </p>
  402. <p>
  403. <label>out_trade_no:</label>
  404. <input type="text" name="out_trade_no">
  405. </p>
  406. <p>
  407. <label>&nbsp;</label>
  408. <input type="submit" class="button" value="提交">
  409. </p>
  410. </form>
  411. <p class="faq">
  412. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_2" target="_blank">* 查看接口 请求参数、响应参数</a>
  413. </p>
  414. </div>
  415. <div id="tabs-purchase-4">
  416. <form class="api-form" asp-controller="WeChatPay" asp-action="CloseOrder" method="post" target="_blank">
  417. <p>
  418. <label>out_trade_no:</label>
  419. <input type="text" name="out_trade_no">
  420. </p>
  421. <p>
  422. <label>&nbsp;</label>
  423. <input type="submit" class="button" value="提交">
  424. </p>
  425. </form>
  426. <p class="faq">
  427. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_3" target="_blank">* 查看接口 请求参数、响应参数</a>
  428. </p>
  429. </div>
  430. <div id="tabs-purchase-5">
  431. <form class="api-form" asp-controller="WeChatPay" asp-action="Refund" method="post" target="_blank">
  432. <p>
  433. <label>out_refund_no:</label>
  434. <input type="text" name="out_refund_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  435. </p>
  436. <p>
  437. <label>transaction_id:</label>
  438. <input type="text" name="transaction_id">
  439. </p>
  440. <p>
  441. <label>out_trade_no:</label>
  442. <input type="text" name="out_trade_no">
  443. </p>
  444. <p>
  445. <label>total_fee:</label>
  446. <input type="text" name="total_fee" value="1" title="单位为分。">
  447. </p>
  448. <p>
  449. <label>refund_fee:</label>
  450. <input type="text" name="refund_fee" value="1" title="单位为分。">
  451. </p>
  452. <p>
  453. <label>refund_desc:</label>
  454. <input type="text" name="refund_desc">
  455. </p>
  456. <p>
  457. <label>&nbsp;</label>
  458. <input type="submit" class="button" value="提交">
  459. </p>
  460. </form>
  461. <p class="faq">
  462. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_4" target="_blank">* 查看接口 请求参数、响应参数</a>
  463. </p>
  464. </div>
  465. <div id="tabs-purchase-6">
  466. <form class="api-form" asp-controller="WeChatPay" asp-action="RefundQuery" method="post" target="_blank">
  467. <p>
  468. <label>refund_id:</label>
  469. <input type="text" name="refund_id">
  470. </p>
  471. <p>
  472. <label>out_refund_no:</label>
  473. <input type="text" name="out_refund_no">
  474. </p>
  475. <p>
  476. <label>transaction_id:</label>
  477. <input type="text" name="transaction_id">
  478. </p>
  479. <p>
  480. <label>out_trade_no:</label>
  481. <input type="text" name="out_trade_no">
  482. </p>
  483. <p>
  484. <label>&nbsp;</label>
  485. <input type="submit" class="button" value="提交">
  486. </p>
  487. </form>
  488. <p class="faq">
  489. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_5" target="_blank">* 查看接口 请求参数、响应参数</a>
  490. </p>
  491. </div>
  492. <div id="tabs-purchase-7">
  493. <form class="api-form" asp-controller="WeChatPay" asp-action="DownloadBill" method="post" target="_blank">
  494. <p>
  495. <label>bill_date:</label>
  496. <input type="text" name="bill_date">
  497. </p>
  498. <p>
  499. <label>bill_type:</label>
  500. <input type="text" name="bill_type">
  501. </p>
  502. <p>
  503. <label>tar_type:</label>
  504. <input type="text" name="tar_type">
  505. </p>
  506. <p>
  507. <label>&nbsp;</label>
  508. <input type="submit" class="button" value="提交">
  509. </p>
  510. </form>
  511. <p class="faq">
  512. <a href="https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=9_6" target="_blank">* 查看接口 请求参数、响应参数</a>
  513. </p>
  514. </div>
  515. <div id="tabs-purchase-8">
  516. <form class="api-form" asp-controller="WeChatPay" asp-action="Transfers" method="post" target="_blank">
  517. <p>
  518. <label>partner_trade_no:</label>
  519. <input type="text" name="partner_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  520. </p>
  521. <p>
  522. <label>openid:</label>
  523. <input type="text" name="openid">
  524. </p>
  525. <p>
  526. <label>check_name:</label>
  527. <input type="text" name="check_name" value="NO_CHECK">
  528. </p>
  529. <p>
  530. <label>re_user_name:</label>
  531. <input type="text" name="re_user_name">
  532. </p>
  533. <p>
  534. <label>amount:</label>
  535. <input type="text" name="amount" value="100">
  536. </p>
  537. <p>
  538. <label>desc:</label>
  539. <input type="text" name="desc" value="企业付款测试">
  540. </p>
  541. <p>
  542. <label>spbill_create_ip:</label>
  543. <input type="text" name="spbill_create_ip" value="127.0.0.1">
  544. </p>
  545. <p>
  546. <label>&nbsp;</label>
  547. <input type="submit" class="button" value="提交">
  548. </p>
  549. </form>
  550. <p class="faq">
  551. <a href="https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2" target="_blank">* 查看接口 请求参数、响应参数</a>
  552. </p>
  553. </div>
  554. <div id="tabs-purchase-9">
  555. <form class="api-form" asp-controller="WeChatPay" asp-action="GetTransferInfo" method="post" target="_blank">
  556. <p>
  557. <label>partner_trade_no:</label>
  558. <input type="text" name="partner_trade_no">
  559. </p>
  560. <p>
  561. <label>&nbsp;</label>
  562. <input type="submit" class="button" value="提交">
  563. </p>
  564. </form>
  565. <p class="faq">
  566. <a href="https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_3" target="_blank">* 查看接口 请求参数、响应参数</a>
  567. </p>
  568. </div>
  569. <div id="tabs-purchase-10">
  570. <form class="api-form" asp-controller="WeChatPay" asp-action="GetPublicKey" method="post" target="_blank">
  571. <p>
  572. <label>&nbsp;</label>
  573. <input type="submit" class="button" value="提交">
  574. </p>
  575. </form>
  576. <p class="faq">
  577. <a href="https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_7&index=4" target="_blank">* 查看接口 请求参数、响应参数</a>
  578. </p>
  579. </div>
  580. <div id="tabs-purchase-11">
  581. <form class="api-form" asp-controller="WeChatPay" asp-action="PayBank" method="post" target="_blank">
  582. <p>
  583. <label>partner_trade_no:</label>
  584. <input type="text" name="partner_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  585. </p>
  586. <p>
  587. <label>bank_no:</label>
  588. <input type="text" name="bank_no">
  589. </p>
  590. <p>
  591. <label>true_name:</label>
  592. <input type="text" name="true_name">
  593. </p>
  594. <p>
  595. <label>bank_code:</label>
  596. <input type="text" name="bank_code">
  597. </p>
  598. <p>
  599. <label>amount:</label>
  600. <input type="text" name="amount" value="100">
  601. </p>
  602. <p>
  603. <label>desc:</label>
  604. <input type="text" name="desc" value="企业付款到银行卡测试">
  605. </p>
  606. <p>
  607. <label>&nbsp;</label>
  608. <input type="submit" class="button" value="提交">
  609. </p>
  610. </form>
  611. <p class="faq">
  612. <a href="https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_2" target="_blank">* 查看接口 请求参数、响应参数</a>
  613. </p>
  614. </div>
  615. <div id="tabs-purchase-12">
  616. <form class="api-form" asp-controller="WeChatPay" asp-action="QueryBank" method="post" target="_blank">
  617. <p>
  618. <label>partner_trade_no:</label>
  619. <input type="text" name="partner_trade_no">
  620. </p>
  621. <p>
  622. <label>&nbsp;</label>
  623. <input type="submit" class="button" value="提交">
  624. </p>
  625. </form>
  626. <p class="faq">
  627. <a href="https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=24_3" target="_blank">* 查看接口 请求参数、响应参数</a>
  628. </p>
  629. </div>
  630. </div>
  631. </div>
  632. <div id="tabs-api-qpay">
  633. <div id="tabs-purchase-qpay">
  634. <ul>
  635. <li><a href="#tabs-purchase-1">扫码支付</a></li>
  636. <li><a href="#tabs-purchase-2">查询订单</a></li>
  637. <li><a href="#tabs-purchase-3">关闭订单</a></li>
  638. <li><a href="#tabs-purchase-4">申请退款</a></li>
  639. <li><a href="#tabs-purchase-5">查询退款</a></li>
  640. </ul>
  641. <div id="tabs-purchase-1">
  642. <form class="api-form" asp-controller="QPay" asp-action="UnifiedOrder" method="post" target="_blank">
  643. <p>
  644. <label>out_trade_no:</label>
  645. <input type="text" name="out_trade_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  646. </p>
  647. <p>
  648. <label>body:</label>
  649. <input type="text" name="body" value="QQ钱包扫码支付测试">
  650. </p>
  651. <p>
  652. <label>total_fee:</label>
  653. <input type="text" name="total_fee" value="1" title="单位为分。">
  654. </p>
  655. <p>
  656. <label>spbill_create_ip:</label>
  657. <input type="text" name="spbill_create_ip" value="127.0.0.1">
  658. </p>
  659. <p>
  660. <label>notify_url:</label>
  661. <input type="text" name="notify_url" value="http://www.baidu.com/notify/qpay">
  662. </p>
  663. <p>
  664. <label>trade_type:</label>
  665. <input type="text" name="trade_type" value="NATIVE">
  666. </p>
  667. <p>
  668. <label>&nbsp;</label>
  669. <input type="submit" class="button" value="提交">
  670. </p>
  671. </form>
  672. <p class="faq">
  673. <a href="https://qpay.qq.com/qpaywiki/showdocument.php?pid=38&docid=58" target="_blank">* 查看接口 请求参数、响应参数</a>
  674. </p>
  675. </div>
  676. <div id="tabs-purchase-2">
  677. <form class="api-form" asp-controller="QPay" asp-action="OrderQuery" method="post" target="_blank">
  678. <p>
  679. <label>transaction_id:</label>
  680. <input type="text" name="transaction_id">
  681. </p>
  682. <p>
  683. <label>out_trade_no:</label>
  684. <input type="text" name="out_trade_no">
  685. </p>
  686. <p>
  687. <label>&nbsp;</label>
  688. <input type="submit" class="button" value="提交">
  689. </p>
  690. </form>
  691. <p class="faq">
  692. <a href="https://qpay.qq.com/qpaywiki/showdocument.php?pid=38&docid=60" target="_blank">* 查看接口 请求参数、响应参数</a>
  693. </p>
  694. </div>
  695. <div id="tabs-purchase-3">
  696. <form class="api-form" asp-controller="QPay" asp-action="CloseOrder" method="post" target="_blank">
  697. <p>
  698. <label>out_trade_no:</label>
  699. <input type="text" name="out_trade_no">
  700. </p>
  701. <p>
  702. <label>&nbsp;</label>
  703. <input type="submit" class="button" value="提交">
  704. </p>
  705. </form>
  706. <p class="faq">
  707. <a href="https://qpay.qq.com/qpaywiki/showdocument.php?pid=38&docid=61" target="_blank">* 查看接口 请求参数、响应参数</a>
  708. </p>
  709. </div>
  710. <div id="tabs-purchase-4">
  711. <form class="api-form" asp-controller="QPay" asp-action="Refund" method="post" target="_blank">
  712. <p>
  713. <label>out_refund_no:</label>
  714. <input type="text" name="out_refund_no" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  715. </p>
  716. <p>
  717. <label>QQtransaction_id:</label>
  718. <input type="text" name="transaction_id">
  719. </p>
  720. <p>
  721. <label>out_trade_no:</label>
  722. <input type="text" name="out_trade_no">
  723. </p>
  724. <p>
  725. <label>refund_fee:</label>
  726. <input type="text" name="refund_fee" value="1" title="单位为分。">
  727. </p>
  728. <p>
  729. <label>op_user_idID:</label>
  730. <input type="text" name="op_user_id">
  731. </p>
  732. <p>
  733. <label>op_user_passwd:</label>
  734. <input type="text" name="op_user_passwd">
  735. </p>
  736. <p>
  737. <label>&nbsp;</label>
  738. <input type="submit" class="button" value="提交">
  739. </p>
  740. </form>
  741. <p class="faq">
  742. <a href="https://qpay.qq.com/qpaywiki/showdocument.php?pid=38&docid=62" target="_blank">* 查看接口 请求参数、响应参数</a>
  743. </p>
  744. </div>
  745. <div id="tabs-purchase-5">
  746. <form class="api-form" asp-controller="QPay" asp-action="RefundQuery" method="post" target="_blank">
  747. <p>
  748. <label>refund_id:</label>
  749. <input type="text" name="refund_id">
  750. </p>
  751. <p>
  752. <label>out_refund_no:</label>
  753. <input type="text" name="out_refund_no">
  754. </p>
  755. <p>
  756. <label>transaction_id:</label>
  757. <input type="text" name="transaction_id">
  758. </p>
  759. <p>
  760. <label>out_trade_no:</label>
  761. <input type="text" name="out_trade_no">
  762. </p>
  763. <p>
  764. <label>&nbsp;</label>
  765. <input type="submit" class="button" value="提交">
  766. </p>
  767. </form>
  768. <p class="faq">
  769. <a href="https://qpay.qq.com/qpaywiki/showdocument.php?pid=38&docid=63" target="_blank">* 查看接口 请求参数、响应参数</a>
  770. </p>
  771. </div>
  772. </div>
  773. </div>
  774. <div id="tabs-api-jdpay">
  775. <div id="tabs-purchase-jdpay">
  776. <ul>
  777. <li><a href="#tabs-purchase-1">扫码支付</a></li>
  778. <li><a href="#tabs-purchase-2">交易查询</a></li>
  779. <li><a href="#tabs-purchase-3">退款申请</a></li>
  780. <li><a href="#tabs-purchase-4">退款查询</a></li>
  781. </ul>
  782. <div id="tabs-purchase-1">
  783. <form class="api-form" asp-controller="JdPay" asp-action="Uniorder" method="post" target="_blank">
  784. <p>
  785. <label>tradeNum:</label>
  786. <input type="text" name="tradeNum" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  787. </p>
  788. <p>
  789. <label>tradeName:</label>
  790. <input type="text" name="tradeName" value="京东扫码支付测试">
  791. </p>
  792. <p>
  793. <label>tradeDesc:</label>
  794. <input type="text" name="tradeDesc" value="交易描述">
  795. </p>
  796. <p>
  797. <label>tradeTime:</label>
  798. <input type="text" name="tradeTime" value="@DateTime.Now.ToString("yyyyMMddHHmmss")">
  799. </p>
  800. <p>
  801. <label>amount:</label>
  802. <input type="text" name="amount" value="1">
  803. </p>
  804. <p>
  805. <label>orderType:</label>
  806. <input type="text" name="orderType" value="1">
  807. </p>
  808. <p>
  809. <label>currency:</label>
  810. <input type="text" name="currency" value="CNY">
  811. </p>
  812. <p>
  813. <label>note:</label>
  814. <input type="text" name="note" value="备注">
  815. </p>
  816. <p>
  817. <label>notifyUrl:</label>
  818. <input type="text" name="notifyUrl" value="http://www.baidu.com/notify/jdpay">
  819. </p>
  820. <p>
  821. <label>tradeType:</label>
  822. <input type="text" name="tradeType" value="QR">
  823. </p>
  824. <p>
  825. <label>&nbsp;</label>
  826. <input type="submit" class="button" value="提交">
  827. </p>
  828. </form>
  829. <p class="faq">
  830. <a href="http://payapi.jd.com/docList.html" target="_blank">* 查看接口 请求参数、响应参数</a>
  831. </p>
  832. </div>
  833. <div id="tabs-purchase-2">
  834. <form class="api-form" asp-controller="JdPay" asp-action="OrderQuery" method="post" target="_blank">
  835. <p>
  836. <label>tradeNum:</label>
  837. <input type="text" name="tradeNum">
  838. </p>
  839. <p>
  840. <label>oTradeNum:</label>
  841. <input type="text" name="oTradeNum">
  842. </p>
  843. <p>
  844. <label>&nbsp;</label>
  845. <input type="submit" class="button" value="提交">
  846. </p>
  847. </form>
  848. <p class="faq">
  849. <a href="http://payapi.jd.com/docList.html" target="_blank">* 查看接口 请求参数、响应参数</a>
  850. </p>
  851. </div>
  852. <div id="tabs-purchase-3">
  853. <form class="api-form" asp-controller="JdPay" asp-action="Refund" method="post" target="_blank">
  854. <p>
  855. <label>tradeNum:</label>
  856. <input type="text" name="tradeNum" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")">
  857. </p>
  858. <p>
  859. <label>oTradeNum:</label>
  860. <input type="text" name="oTradeNum">
  861. </p>
  862. <p>
  863. <label>amount:</label>
  864. <input type="text" name="amount" value="1">
  865. </p>
  866. <p>
  867. <label>currency:</label>
  868. <input type="text" name="currency" value="CNY">
  869. </p>
  870. <p>
  871. <label>&nbsp;</label>
  872. <input type="submit" class="button" value="提交">
  873. </p>
  874. </form>
  875. <p class="faq">
  876. <a href="http://payapi.jd.com/docList.html" target="_blank">* 查看接口 请求参数、响应参数</a>
  877. </p>
  878. </div>
  879. <div id="tabs-purchase-4">
  880. <form class="api-form" asp-controller="JdPay" asp-action="RefundQuery" method="post" target="_blank">
  881. <p>
  882. <label>tradeNum:</label>
  883. <input type="text" name="tradeNum">
  884. </p>
  885. <p>
  886. <label>oTradeNum:</label>
  887. <input type="text" name="oTradeNum">
  888. </p>
  889. <p>
  890. <label>&nbsp;</label>
  891. <input type="submit" class="button" value="提交">
  892. </p>
  893. </form>
  894. <p class="faq">
  895. <a href="http://payapi.jd.com/docList.html" target="_blank">* 查看接口 请求参数、响应参数</a>
  896. </p>
  897. </div>
  898. </div>
  899. </div>
  900. </div>
  901. </div>
  902. @section Scripts {
  903. <script src="~/demo.js" asp-append-version="true"></script>
  904. }
  905. @section Styles {
  906. <link rel="stylesheet" href="~/demo.css" asp-append-version="true">
  907. }