PB实现微信、支付宝、新大陆星POS扫码支付接口
PB调用C#动态库实现新大陆星POS扫码支付接口。
实例下载地址:https://download.csdn.net/download/weixin_41317666/12418679
string ls_url
string ls_data
string ls_dd
string ls_zfqd
//【交易类型--传入平台用】
if rb_1.checked = true then
ls_zfqd = "WXPAY"
end if
if rb_2.checked = true then
ls_zfqd = "ALIPAY"
end if
if rb_3.checked = true then
ls_zfqd = "YLPAY"
end if
//【生成请求地址===从配置参数中维护请求地址的一部分】
ls_url = gs_pos_requesturl + "sdkBarcodePay.json"
//【判断输入金额是否符合要求】
if dec(em_1.text) <= 0.00 then
messagebox("系统提示【MYSOFT】","所输金额不正确!~r~n请重新输入!")
em_1.setfocus()
return
end if
//【判断商户订单号是否为空】
if sle_4.text = "" then
messagebox("系统提示【MYSOFT】","订单号不能为空!")
return
end if
//【判断是否扫描付款码】
if sle_code.text = "" then
messagebox("系统提示【MYSOFT】","付款码不能为空!")
sle_code.setfocus()
return
end if
//【判断是否扫描付款码】
if len(sle_code.text) = 0 then
messagebox("系统提示【MYSOFT】","请扫描服务对象付款码... ...")
sle_code.setfocus()
return -1
end if
//【判断订单号是否为空】
if len(sle_4.text) = 0 then
messagebox("系统提示【MYSOFT】","订单号不能为空!")
sle_4.setfocus()
return -1
end if
//【初始化伪随机数发生器,让应用程序每次运用不同的伪随机数序列。】
randomize(0)
//【清除is_keys[] is_value[]】
inv_wxpay.of_clear()
//====================生成公共请求参数==============================================================
//【操作系统:3-直连】
inv_wxpay.of_add_pos("opSys","3")
//【字符集:00-GBK】
inv_wxpay.of_add_pos("characterSet","00")
//【机构号,从配置参数维护】
inv_wxpay.of_add_pos("orgNo",gs_pos_orgno)
//【商户号,从配置参数维护】
inv_wxpay.of_add_pos("mercId",gs_pos_mercid)
//【设备号,从配置参数维护】
inv_wxpay.of_add_pos("trmNo",gs_pos_trmno)
//【商户单号,不能重复,若重复则返回:数据库错误】
inv_wxpay.of_add_pos("tradeNo",sle_4.text)
//【设备端交易时间:yyyymmddhhmmss】
inv_wxpay.of_add_pos("txnTime",string(now(),"yyyymmddhhmmss"))
//【签名方式:MD5】
inv_wxpay.of_add_pos("signType","MD5")
//【版本号:默认V1.0.0】
inv_wxpay.of_add_pos("version","V1.0.0")
//==================生成商户主扫请求参数============================================================
//【实付金额:分为单位】
inv_wxpay.of_add_pos("amount",string(long(dec(em_1.text) * 100)))
//【订单总金额:分为单位】
inv_wxpay.of_add_pos("total_amount",string(long(dec(em_1.text) * 100)))
//【扫码支付授权码】
inv_wxpay.of_add_pos("authCode",sle_code.text)
//【支付渠道:WXPAY,ALIPAY,YLPAY】
inv_wxpay.of_add_pos("payChannel",ls_zfqd)
//【请求参数数据签名,并生成JSON格式数据】
mle_1.text = inv_wxpay.of_get_json()
ls_data = trim(mle_1.text)
mle_2.text = ""
//【POST数据到平台,并接收返回数据:JSON格式】
mle_2.text = inv_wxpay.of_post_pos(ls_url,ls_data)
//【返回JSON数据转换为XML数据,用于交易解析】
mle_2.text = inv_wxpay.of_json_to_xml(mle_2.text)
//===================================以下判断订单交易情况=============================================
if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "S" then
if dw_2.rowcount() = 1 then
//【请求数据XML】
dw_2.object.in_xml[1] = mle_1.text
//【交易金额】
dw_2.object.amount[1] = dec(em_1.text)
//【交易时间】
dw_2.object.zf_date_wx[1] = gf_xml_resolve_pos(mle_2.text,"sysTime")
//【订单状态--保存本地数据库】
dw_2.object.trade_state[1] = "支付成功"
//【支付渠道订单号,可用于退款】
dw_2.object.dd_code[1] = gf_xml_resolve_pos(mle_2.text,"orderNo")
//【付款码】
dw_2.object.fk_code[1] = sle_code.text
dw_2.object.zffs[1] = 1
//【更新交易到数据库】
if dw_2.update() = 1 then
commit using sqlca;
dw_2.retrieve(trim(sle_4.text))
else
rollback using sqlca;
end if
end if
//【执行查单操作】
cb_21.triggerevent(clicked!)
//【刷新本地数据】
cb_7.triggerevent(clicked!)
return
end if
//========================================以下判断交易执行情况==================================================
if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then
messagebox("支付提示【MYSOFT】","状态:【A-等待授权】~n~n【特别注意】:请等候服务对象输入密码确认成功后点[确定]...~n~n还可通过【查询订单状态】检查订单支付情况!")
if dw_2.rowcount() = 1 then
dw_2.object.in_xml[1] = mle_1.text
dw_2.object.amount[1] = dec(em_1.text)
dw_2.object.dd_code[1] = ""
dw_2.object.fk_code[1] = sle_code.text
dw_2.object.zffs[1] = 1
dw_2.object.trade_state[1] = "订单未支付"
if dw_2.update() = 1 then
commit using sqlca;
dw_2.retrieve(trim(sle_4.text))
else
rollback using sqlca;
end if
end if
cb_21.triggerevent(clicked!)
cb_7.triggerevent(clicked!)
return
end if
if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "A" then
messagebox("支付提示【MYSOFT】","订单等待授权~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
return
end if
if gf_xml_resolve_pos(mle_2.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_2.text,"result") = "F" then
messagebox("支付提示【MYSOFT】","订单交易失败~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
return
end if
if gf_xml_resolve_pos(mle_1.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_1.text,"result") = "D" then
messagebox("支付提示【MYSOFT】","订单已撤销~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
return
end if
if gf_xml_resolve_pos(mle_1.text,"returnCode") = "000000" and gf_xml_resolve_pos(mle_1.text,"result") = "Z" then
messagebox("支付提示【MYSOFT】","订单交易未知~n~n支付单号:【" + gf_xml_resolve_pos(mle_2.text,"orderNo") + "】~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~nA-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n请重新支付!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
return
end if
if gf_xml_resolve_pos(mle_2.text,"returnCode") <> "000000" and gf_xml_resolve_pos(mle_2.text,"result") <> "S" then
messagebox("系统提示【MYSOFT】","订单未成功~n~n支付状态:【" + gf_xml_resolve_pos(mle_2.text,"result") + "】~n~n A-等待授权,S-交易成功,F-交易失败,Z-交易未知,D-订单已撤销!~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
return
end if
if gf_xml_resolve_pos(mle_2.text,"returnCode") <> "000000" then
messagebox("支付提示【MYSOFT】","支付不成功!~n~n~n~n请重新生成订单并扫码... ...~n~n系统返回message:" + inv_wxpay.of_utf8togb3212(gf_xml_resolve_pos(mle_2.text,"message")))
sle_code.text = ""
sle_code.setfocus()
return
end if
return
PB实现微信、支付宝、新大陆星POS扫码支付接口相关推荐
- 支付宝当面付之扫码支付“无效签名”
做支付宝的当面付扫码支付的时候,遇到最纠结的问题就是一直提示"无效签名",然而官方又没有给出很明确的说明,在网上搜索了很长时间,也没有找到解决的具体例子,我就把我的经历说一下,有需 ...
- ASP.NET Core 2.0 支付宝当面付之扫码支付
前言 自从微软更换了CEO以后,微软的战略方向有了相当大的变化,不再是那么封闭,开源了许多东西,拥抱开源社区,.NET实现跨平台,收购xamarin并免费提供给开发者等等.我本人是很喜欢.net的,并 ...
- Payment:接入支付宝当面付(扫码支付与条码支付)教程
越写越觉得支付类的文档写这么细,会不会反而让大家觉得很复杂呀?其实都是同样的调用方式 这一篇,将把支付宝剩下的扫码支付与条码支付全部写清楚. Payment 3.0 支付宝的配置设置文档请 点击这里 ...
- 支付宝当面付(扫码支付)
一下内容仅为服务端功能,前端业务没必要 采用证书方式开发 支付宝开发并不难,文档写的很清楚,不想隔壁写的那么恶心 https://opendocs.alipay.com/open/194/105203 ...
- Payment:接入支付宝当面付(扫码支付与条码支付)教程 1
越写越觉得支付类的文档写这么细,会不会反而让大家觉得很复杂呀?其实都是同样的调用方式 这一篇,将把支付宝剩下的扫码支付与条码支付全部写清楚. Payment 3.0 支付宝的配置设置文档请 点击这里 ...
- 如何对接payjs的个人微信扫码支付接口
在众多个人支付接口的产品中,要寻找一个稳定可靠的产品是比较难的,所幸遇到payjs,感觉逼格较高,非常满足自己的品味.推荐大家使用.下边是我在对接payjs的过程中的一些经验和技巧,分享给大家. 一. ...
- java调用支付宝扫码支付接口
说明: 由于没有商户账号,所以本文使用的是沙箱账号,本质跟真实账号是一样的,是支付宝为了方便开发人员开发调试而推出的策略.在真实开发中将商户公钥等修改为真实的商户即可. 支付基本流程 用户下单 商户账 ...
- 支付宝当面付扫码支付接口开发
最近公司要做一个有关支付的相关项目,需要对接支付宝的支付接口,实现扫描二维码支付功能,为此研究了一下支付宝相关业务.主要依据就是支付宝的相关接口文档: https://docs.open.alipay ...
- 做微信扫码支付接口,二维码图片显示的是二进制文件的解决方案
先说一下我的配置 centos 7.0 jdk 1.7 apache tomcat 7.0 spring mvc 4.0 做微信扫码支付遇到一个很严重的问题 二维码在本地可以正常的在jsp上显示,部署 ...
最新文章
- Spring源码分析【3】-SpingWebInitializer的加载
- C#中的Params、ref、out的区别
- 突然发现缓存这么好用
- 理解HTTP协议中的multipart/form-data
- 最重要的 Java EE 最佳实践
- Linux进程3——虚拟地址访问
- python的函数调用_三个案例带你了解python回调函数
- MediaCreationTool工具重装win10系统(小白专用)
- Android系统ANR错误实战分析
- 嵌入式工程师应该知道的C语言
- react图片剪裁react-cropper
- 关于pyrit安装失败最新解决
- windows10 如何使用 debug
- 12306查询车票(爬虫小练_1)
- FileNotFoundError: Could not find module ‘C:\Users\Yolanda\anaconda3\envs\python38\lib\site-packages
- OpenGL---GLUT教程(四) GLUT动画
- 有关人工智能的硕士点整理
- etermPID配置放大软件下载使用部署
- Linux服务器监控的神器:Netdata
- 手撸SSO单点登录(六)SSO单点退出原理
热门文章
- 网站内容想获得百度蜘蛛好感,应该要具备哪些特点?
- Linux 工作中 常用命令
- 这段在vue官网能成功运行的代码,在codepen里也没能运行,说vue没被定义Uncaught ReferenceError: Vue is not defined
- 自己动手画CPU《计算机组织与结构实验》之计算机数据表示 第4关:偶校验解码电路设计 超详细教学
- 认识铁电材料从这里开始TDZT-04铁电材料测试仪
- iOS开源资源收集~~
- LTE(4G) - NR(5G) NAS协议(理论)
- 想要实现带货直播源码秒开?先看看这个
- c语言作业 蟠桃计,神武2心体双百PT孩子计划书:少蟠桃少千字文_ 叶子猪神武...
- 2017大学计算机考试题,2017年大学计算机一级考试题库