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扫码支付接口相关推荐

  1. 支付宝当面付之扫码支付“无效签名”

    做支付宝的当面付扫码支付的时候,遇到最纠结的问题就是一直提示"无效签名",然而官方又没有给出很明确的说明,在网上搜索了很长时间,也没有找到解决的具体例子,我就把我的经历说一下,有需 ...

  2. ASP.NET Core 2.0 支付宝当面付之扫码支付

    前言 自从微软更换了CEO以后,微软的战略方向有了相当大的变化,不再是那么封闭,开源了许多东西,拥抱开源社区,.NET实现跨平台,收购xamarin并免费提供给开发者等等.我本人是很喜欢.net的,并 ...

  3. Payment:接入支付宝当面付(扫码支付与条码支付)教程

    越写越觉得支付类的文档写这么细,会不会反而让大家觉得很复杂呀?其实都是同样的调用方式 这一篇,将把支付宝剩下的扫码支付与条码支付全部写清楚. Payment 3.0 支付宝的配置设置文档请 点击这里 ...

  4. 支付宝当面付(扫码支付)

    一下内容仅为服务端功能,前端业务没必要 采用证书方式开发 支付宝开发并不难,文档写的很清楚,不想隔壁写的那么恶心 https://opendocs.alipay.com/open/194/105203 ...

  5. Payment:接入支付宝当面付(扫码支付与条码支付)教程 1

    越写越觉得支付类的文档写这么细,会不会反而让大家觉得很复杂呀?其实都是同样的调用方式 这一篇,将把支付宝剩下的扫码支付与条码支付全部写清楚. Payment 3.0 支付宝的配置设置文档请 点击这里 ...

  6. 如何对接payjs的个人微信扫码支付接口

    在众多个人支付接口的产品中,要寻找一个稳定可靠的产品是比较难的,所幸遇到payjs,感觉逼格较高,非常满足自己的品味.推荐大家使用.下边是我在对接payjs的过程中的一些经验和技巧,分享给大家. 一. ...

  7. java调用支付宝扫码支付接口

    说明: 由于没有商户账号,所以本文使用的是沙箱账号,本质跟真实账号是一样的,是支付宝为了方便开发人员开发调试而推出的策略.在真实开发中将商户公钥等修改为真实的商户即可. 支付基本流程 用户下单 商户账 ...

  8. 支付宝当面付扫码支付接口开发

    最近公司要做一个有关支付的相关项目,需要对接支付宝的支付接口,实现扫描二维码支付功能,为此研究了一下支付宝相关业务.主要依据就是支付宝的相关接口文档: https://docs.open.alipay ...

  9. 做微信扫码支付接口,二维码图片显示的是二进制文件的解决方案

    先说一下我的配置 centos 7.0 jdk 1.7 apache tomcat 7.0 spring mvc 4.0 做微信扫码支付遇到一个很严重的问题 二维码在本地可以正常的在jsp上显示,部署 ...

最新文章

  1. Spring源码分析【3】-SpingWebInitializer的加载
  2. C#中的Params、ref、out的区别
  3. 突然发现缓存这么好用
  4. 理解HTTP协议中的multipart/form-data
  5. 最重要的 Java EE 最佳实践
  6. Linux进程3——虚拟地址访问
  7. python的函数调用_三个案例带你了解python回调函数
  8. MediaCreationTool工具重装win10系统(小白专用)
  9. Android系统ANR错误实战分析
  10. 嵌入式工程师应该知道的C语言
  11. react图片剪裁react-cropper
  12. 关于pyrit安装失败最新解决
  13. windows10 如何使用 debug
  14. 12306查询车票(爬虫小练_1)
  15. FileNotFoundError: Could not find module ‘C:\Users\Yolanda\anaconda3\envs\python38\lib\site-packages
  16. OpenGL---GLUT教程(四) GLUT动画
  17. 有关人工智能的硕士点整理
  18. etermPID配置放大软件下载使用部署
  19. Linux服务器监控的神器:Netdata
  20. 手撸SSO单点登录(六)SSO单点退出原理

热门文章

  1. 网站内容想获得百度蜘蛛好感,应该要具备哪些特点?
  2. Linux 工作中 常用命令
  3. 这段在vue官网能成功运行的代码,在codepen里也没能运行,说vue没被定义Uncaught ReferenceError: Vue is not defined
  4. 自己动手画CPU《计算机组织与结构实验》之计算机数据表示 第4关:偶校验解码电路设计 超详细教学
  5. 认识铁电材料从这里开始TDZT-04铁电材料测试仪
  6. iOS开源资源收集~~
  7. LTE(4G) - NR(5G) NAS协议(理论)
  8. 想要实现带货直播源码秒开?先看看这个
  9. c语言作业 蟠桃计,神武2心体双百PT孩子计划书:少蟠桃少千字文_ 叶子猪神武...
  10. 2017大学计算机考试题,2017年大学计算机一级考试题库