当前位置:网站首页>Realize payment function in applet
Realize payment function in applet
2022-07-07 18:56:00 【Low code preacher】
Catalog
Many of the daily small programs need to be paid , How to realize payment in a small program ? This article takes you to experience .
1 Payment scenario
Let's sort out what the payment scenario looks like , First, you can browse products , Then make settlement in the detail page of the commodity . The main purpose of settlement is to generate orders , Payment can be made after the order is generated .
Payment is actually to submit an online order to wechat payment , After the order is submitted successfully, you can call the payment interface to pull up the payment interface .
After pulling up the payment interface, we need to pay according to the prompted amount , After the payment is successful, we will update the status of the order , Become paid .
2 create data source
According to the analysis scenario, we need to create a data source , There are two data sources , They are commodity data source and order data source .
2.1 Commodity data source
If there is a commodity, there is the name of the commodity 、 Price 、 details , Create the commodity data source and corresponding fields according to the design
2.2 Order data source
If the order is placed, there is an order number , Pay the amount , Whether to pay ,openid
3 Create a connector
If we want to use wechat to pay , You need to create a connector first . Click the connector on the console , Click new connector
Choose wechat payment
Select the applet and merchant number of the business entity , This completes the creation of the connector
Wechat payment provides a total of four methods , They are unified orders 、 Query order 、 Close order 、 Download the statement
4 Create an
Click the application menu of the console , Click new app , Create a new custom application
Enter the name of the app , Choose applet
Click on the blank page , Create a home page
Click next to the page +
Number , First create a product details page
Then create an order page
5 Function development
5.1 home page
On the home page, we put a data list component to display the list information of products
Then bind the corresponding field to the text component
Choose for Ordinary containers for recycling , Set click event , Jump to the product details page . When jumping, you need to create a new page parameter , Then bind the data ID of the current record
5.2 Product details page
The product details page is developed using the data details component , Add the data details component . Select the data source model , Set filter criteria , And bind the fields
Add a button to the page , Modify the title to settlement
When we click the settlement button, we need to call the low code method , Complete order creation . Here you need to transfer the order amount , Low code method calls can be added
export default async function({
event, data}) {
const resutl = await app.cloud.callModel({
name:'dd_98jydrk',
methodName:'wedaCreate',
params:{
ddje:data.target,
openid:app.dataset.state.openid,
sfzf:false
}
})
app.navigateTo({
pageId: 'u_ding_dan_ye', // page Id
params: {
id: resutl._id},
});
}
there openid Is the value of the global variable obtained , Specific global variable settings , Start the method to get the user's openid We have explained it many times in historical articles , You can check the previous tutorials .
After the low code method is defined, we can set the click event on the component , The amount passed in by parameters
5.3 Order page
The order page first displays the details of the order with the data details component , Place a payment button to call the unified ordering method of the connector , After the call is successful, call the payment interface and pull up the payment interface
First, add a parameter variable , Receive the parameters we passed in on the product details page
Add a data detail component , Data source selection order , The filter condition setting data ID is equal to our parameter variable
Bind the fields in the order to the text component in turn
Add a button component , Modify the title to pay
Because we also need to get the details of the order on the payment page , So we need to create a model variable to get the specific value according to the parameter variable
Create a low code payment method in the low code editor
export default async function ({
event, data }) {
const result = await app.cloud.callConnector({
name: 'wxzf_82kvbum',
methodName: 'unifiedOrder',
params: {
body: " Order example - Payment order ",
outTradeNo: $page.dataset.state.order.ddbh,// Incoming order number
totalFee: $page.dataset.state.order.ddje,// Incoming payment amount
openid: $page.dataset.state.order.openid// Pass in to the user openid
}, // Methods into the reference
})
let pay = result.payment;// Get the return result after unified order
$app.requestPayment(// Call the payment interface to complete the payment
{
timeStamp: pay.timeStamp,
nonceStr: pay.nonceStr,
package: pay.package,
signType: pay.signType,
paySign: pay.paySign,
success(res) {
console.log(res)
},
fail(res) {
console.log(res)
}
}
);
}
What is not solved here is the problem that the payment successfully updates the order status , The actual measurement cannot directly call the method of data model in the callback function of payment , If there are students who succeed in the test, they can leave a message in the comment area for discussion
summary
We use a certain amount of space to explain a complete payment process , Payment is still a common scenario , With the payment function, transactions can form a closed loop , If you can't do it yet, please follow the tutorial . If it helps you , Please like it 、 Comments and attention .
边栏推荐
- 线程池中的线程工厂
- How many times is PTA 1101 B than a
- How to choose the appropriate automated testing tools?
- Redis
- 企业展厅设计中常用的三种多媒体技术形式
- Sports Federation: resume offline sports events in a safe and orderly manner, and strive to do everything possible for domestic events
- Save the memory of the model! Meta & UC Berkeley proposed memvit. The modeling time support is 30 times longer than the existing model, and the calculation amount is only increased by 4.5%
- 磁盘存储链式的B树与B+树
- RISCV64
- 持续测试(CT)实战经验分享
猜你喜欢
[paper sharing] where's crypto?
Interview vipshop internship testing post, Tiktok internship testing post [true submission]
Wireshark分析抓包数据*.cap
RISCV64
App capture of charles+postern
The performance and efficiency of the model that can do three segmentation tasks at the same time is better than maskformer! Meta & UIUC proposes a general segmentation model with better performance t
Differences between rip and OSPF and configuration commands
gsap动画库
App capture of charles+drony
面试唯品会实习测试岗、抖音实习测试岗【真实投稿】
随机推荐
能同时做三个分割任务的模型,性能和效率优于MaskFormer!Meta&UIUC提出通用分割模型,性能优于任务特定模型!开源!...
嵌入式C语言程序调试和宏使用的技巧
Continuous test (CT) practical experience sharing
云安全日报220707:思科Expressway系列和网真视频通信服务器发现远程攻击漏洞,需要尽快升级
[paddleseg source code reading] add boundary IOU calculation in paddleseg validation (1) -- val.py file details tips
Usage of PHP interview questions foreach ($arr as $value) and foreach ($arr as $value)
Is it safe to open an online futures account now? How many regular futures companies are there in China?
Static routing configuration
Reject policy of thread pool
Using stored procedures, timers, triggers to solve data analysis problems
[C language] string function
What is the general yield of financial products in 2022?
Antisamy: a solution against XSS attack tutorial
体总:安全有序恢复线下体育赛事,力争做到国内赛事应办尽办
Calculation of torque target value (ftorque) in servo torque control mode
PHP面试题 foreach($arr as &$value)与foreach($arr as $value)的用法
链式二叉树的基本操作(C语言实现)
How to choose the appropriate automated testing tools?
RISCV64
Five network IO models