- 博客(0)
- 资源 (8)
- 收藏
- 关注
星POS支付powerbuilder源码.rar
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现星POS支付接口,并可轻松接入微信、支付宝,实现powerbuilder无法完成的支付功能。
2020-07-29
ReferencedAssemblies.rar
PACS开源库ClearCanvas所用动态库ReferencedAssemblies,解决ClearCanvas无法加载所需动态库问题。
2020-07-05
PB实现微信、支付宝、新大陆星POS支付-9.0.rar
PB新大陆星POS扫码支付源码,调用C#动态库,简单实现接口,采用POWERBUILDER9.0开发
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
2020-05-14
PB实现微信支付源代码[QQ103556710]-12.6.rar
powerbuilder12.6实现微信、支付宝支付,可扫码付、刷卡付,查单,撤销等操作。
调用简单,只需按照例子提供的格式组织数据,其他工作由DLL自动完成。
2019-08-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人