1、付出宝盛开仄台交进(链交地点)
2、准备沙箱(设置天生公钥、稀钥)
2.1 起首要准备沙箱情况==》面打【研收效劳】沙箱
2.2 树立稀钥
注:面打【树立/检察】,假设不设置过,需要截至设置,设置方法以下(实在网站上有,那里大抵道一下)
下载东西
面打天生稀钥(后绝设置:使用公钥有效)
3、Node.js设置完毕网站付出
3.1领取 宝民间SDK检察(付出宝盛开仄台网址)
3.2装置 依靠
3.3 面打【SDK设置】,检察具体设置
3.4上面 即是Node.js具体设置了。
那里念咽槽一下,写的一面皆没有齐。法式员脱收的启事皆是文档吗?
4、具体设置
4.1 Vue代码- <template>
- <div class=&#34;home&#34;>
- <button @click=&#34;goPay&#34;>面打跳转付出</button>
- </div>
- </template>
- <script>
- export default {
- name: &#39;Home&#39;,
- data(){
- return {
- data:{}
- }
- },
- methods: {
- goPay() {
- let data = {
- orderId: &#39;fffehrwiyrewy43434228758475&#39; //随机天生唯一的就好了那个自己 找吧
- }
- var instance = this.$axios.create({headers: {&#39;content-type&#39;: &#39;application/x-www-form-urlencoded&#39;}});
- // 代办署理到 http://localhost:3000/api/pcpay
- instance.post(`http://localhost:3000/api/pcpay`, this.$qs.stringify(data)).then(res =>{
- this.data=res;
- window.open(res.data.result)
- });
- }
- }
- }
- </script>
复造代码 4.2 Node.js代码(alipayUtil.js)- const AlipaySdk = require(&#39;alipay-sdk&#39;).default; // 引进 SDK
- const alipaySdk = new AlipaySdk({
- appId: &#39;2021000117615613&#39;, // 盛开仄台上创立使用时天生的 appId
- signType: &#39;RSA2&#39;, // 署名算法,默认 RSA2
- gateway: &#39;https://openapi.alipaydev.com/gateway.do&#39;, //领取 宝网闭地点 ,沙箱情况下使用时需要改正
- alipayPublicKey: &#39;MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAspl4t/OIOQK4xfJ/WAQX+jeXCZ3KQsAVLVeL2m2ukza9OA1wtbGzjT6Zqn1zpGKWPgCxHcs/UZvcsBWjxaG6oAV7ULPyAjowt74kb5/5293GkN2bein3TAsrkg3PvCd4JwKjBACsIwbHBIx6E0B0+H6z2XsIeJkd2oTCHIlx59djAMzisF9+JxQgjPn6SnA5pttgyL+O4bYezwP3qnzPa60wiN1qEBbUE8SgJSyaT1PAAwlOdBkxx3ZlJ3tC0ppAowrmIYTgOWE13PI+AYQkRoecKCWekknxaHo4NCDx2LYi2wk0XzTC6J9aiOt49iEynP8k8SAGAl0ykbImR7CxBwIDAQAB&#39;, //领取 宝公钥,需要对于成果验签时候必挖
- privateKey: &#39;MIIEpAIBAAKCAQEAlKemLqcQzhNpGgTzjQo8x5XikzFD9ggYPko5klgNYXCZVsEK9mXCbmX8a1VAMJDscDPLCLCWhW080rNhDStBFc0bXasEC7yEu1gBwf9aVqszpTrneIbUjtKYWoT0UpWtR2P17vwlf8nsQhjWUPp29VOAZZABXqRr6zTi/ZJYkwjvCpkG+R4HZYKvTwYn5/i93zHP4HBEfzrq6aqlwJmNdOQIq1GfFa613zbRDMdzmeUiNTLM88rzuFUMMAIjcn3TQU8aj+LMC78GlgbObXGYz1DpIVMuhq9TCp9jH64K+0cG/9+phsD+rbUqT5g/i1tCXJF7cMxH5RovFyi1F7zaIQIDAQABAoIBAEimanwwX/Em4V26/8B1OWEdan8fO6SZLif7JInWCKwPWJFihNYIw24q36MhJd7WZQcs+NRFYTrSOUCMNCk4c3WRKQetFawatQ/OIgXKoz7qKrJcyFVKJ8WpPJY4liNqTSYvvzjN+BGtAI8JDmzDC7I33e9E4rZ7StbHoQvmIu2wVoVJWKmzx0rvNy5PD33suxOWa7f7mM9PBsJJ6McIprv0Z4Gcv95YvmjgL8J++AGyrx4qeB2BeXSAEg5k9Nx2Kje/Ff+nXnfgrnceN/fT93eUH8w301BBin72pR3+vIYPohPpZj3SB5KcKE9F8t/OZdssUHXzLW6LRcjQW13+bQECgYEA4Cbb90dfC0qW6b9QwAGIN0EN3rCo5a8/6xw5thQTCnlHx7r59Xm8dK5NdauGvxVz/n4mB7qE3eVXsG8Y0WL1DRV4S9fNdKERWI0W63/p6PdejXOJVkDl/R15p+eJvQTZRqAKPkasoObqmx4ETg+SrGTEebYcFRcGnNG5wkIpjxECgYEAqca3x0uotYHnUZ9K5V7dWON9VKc8av5/5vl3yRXZvfj4vf5NwXNm82qlfk2DR+HpZmZZrrVVJuOP/TQaWJhtDstM1qyH6J6AlPquNZKUuoyqjFYF4+CfkUbLA00FIvqr7xqIXAvcV4l9LJNZ6ioD9W3L6BxAMWJur6jvIICIuhECgYEAw2zdxn+xO7TyUiT8kApF6naLUyYOewIJ5j+biUWDPFR04ov/tadHSStWWUsMlbhsgusU2RQjFxsHEsophxSRtbCMSwOBGzf6WYvY+cVx+C0DgKvEhzDZ045JLLxPeD6r+Ek75QPVKgtpa4gGFNC6/hZ0vfCqFzEWEM9A9z6b4SECgYAmQSeB2ZNvKpEjvB/VJRX9BG1mGLStayEIu2d5QNoqSyJJNTbyAv3MlVgq6G5PUSEVOLS2gBdqxtXX+NiC4/2W2so6iO+qw6Q3bXC5k4i9rBp1uqBjI2bxBiGSYdVpd1AsdS8KhoWkl89DrwQQll0D/TR33X29Yu+L1yXijfPA8QKBgQDdbLO7ZOWOgB9zb80+N+OOJxgC5g4gum2dg/WvMO0riwH06/8C4QRdbOsHu8NiCALXzB1BUQyWnRPS4+QGY/gaZ7jhrL8bUkD5RFM7/cxKLhJTqjLoMcLoG4egYovJQGwAEBKu5LDBP+hnlqoDUGLhhJkPM9vVA92mPM00jqdaxQ==&#39;, // 使用公钥字符串
- });
- module.exports = alipaySdk;
复造代码 4.3 Node.js(交心代码)- const express = require(&#39;express&#39;);
- const router = express();
- const alipaySdk = require(&#39;./util/alipayUtil&#39;);
- const AlipayFormData = require(&#39;alipay-sdk/lib/form&#39;).default; // alipay.trade.page.pay 前去的实质为 Form 表单
- const cors = require(&#39;cors&#39;)
- router.use(express.json());
- // 使用cors处置跨域成就
- router.use(cors());
- router.use(express.urlencoded({ extended: true }));
- router.post(&#39;/api/pcpay&#39;, (req, res) => {
- let orderId=req.body.orderId
- // * 增加买物车付出付出宝 */
- // 挪用 setMethod 并传进 get,会前去能够跳转到付出页里的 url
- const formData = new AlipayFormData();
- formData.setMethod(&#39;get&#39;);
- // 颠末 addField 增加参数
- // 正在用户付出完毕以后,付出宝效劳器会按照传进的 notify_url,以 POST 恳求的方法将付出成果动作参数报告到商户体系。
- formData.addField(&#39;notifyUrl&#39;, &#39;https://www.xuexiluxian.cn&#39;); //领取 胜利回调地点,必需为能够间接会见的地点,不克不及戴参数
- formData.addField(&#39;bizContent&#39;, {
- outTradeNo: orderId, // 商户定单号,64个字符之内、可包罗字母、数字、下划线,且不克不及重复
- productCode: &#39;FAST_INSTANT_TRADE_PAY&#39;, // 贩卖产物码,取付出宝签约的产物码称呼,仅撑持FAST_INSTANT_TRADE_PAY
- totalAmount: &#39;0.01&#39;, // 定单总金额,单元为元,精确到小数面后二位
- subject: &#39;商品&#39;, // 定单题目
- body: &#39;商品概略&#39;, // 定单描绘
- });
- formData.addField(&#39;returnUrl&#39;, &#39;https://opendocs.alipay.com&#39;);//减正在那里才有用因,没有是减正在bizContent里面
- //假设 需要付出后跳转到商户界里,能够增加属性&#34;returnUrl&#34;
- const result = alipaySdk.exec( // result 为能够跳转到付出链交的 url
- &#39;alipay.trade.page.pay&#39;, //分歧 支单下单并付出页里交心
- {}, // api 恳求的参数(包罗“大众恳求参数”战“营业参数”)
- { formData: formData },
- );
- result.then((resp)=>{
- res.send(
- {
- &#34;success&#34;: true,
- &#34;message&#34;: &#34;success&#34;,
- &#34;code&#34;: 200,
- &#34;timestamp&#34;: (new Date()).getTime(),
- &#34;result&#34;: resp
- }
- )
- })
- });
复造代码 残破代码条记获得地点:
QQ群:1135110801
微旌旗灯号:hellow404 |