Lockappid = ALLTRIM(thisform.cont1.text2.Value) &&微信公众号
Lockmchid = ALLTRIM(thisform.cont1.text3.Value) &&商户号
IF thisform.cont1.opg3.option2.Value =1 &®istered=1 公众号、商户号已加密授权 =0 原始公众号、原始商户号
registered=1
ELSE
registered=0
ENDIF
Idkey = ALLTRIM(thisform.cont1.text4.Value) &&KEY
IF thisform.cont1.opg2.option2.Value =1 &&Idkeylock=1 KEY加密,否则KEY不加密
Idkeylock=1
ELSE
Idkeylock=0
ENDIF
OrdNum=ALLTRIM(thisform.text1.Value)
TotalFee=ALLTRIM(thisform.text2.Value)
AuthCode=ALLTRIM(thisform.text3.Value)
inbody=ALLTRIM(thisform.text6.Value)
IF OrdNum<>""
messagebox("请输入商户号内的唯一订单编号!",0+16+0,'提示')
thisform.text1.SetFocus
return
ENDIF
IF LEN(AuthCode)<>18
messagebox("请扫描或输入有效的微信付款码!",0+16+0,'提示')
thisform.text3.SetFocus
return
ENDIF
answ=MESSAGEBOX(" 本次支付将从微信账号扣款,此扣款不能退回,确定要继续吗?",1+32+0,'警告')
IF answ=1
&&retuinf=Replicate(CHR(0), 1000)
retuinf="正在进行微信付款码支付,请稍后..."+SPACE(1000)
outinf=VarPtr(retuinf)
thisform.text4.Value =""
thisform.command7.Enabled = .F.
thisform.command7.Caption ="正在支付中,请稍后..."
thisform.Refresh
DOEVENTS
result=WeiXinPayCodeEx2(Lockappid, Lockmchid,registered,Idkey,Idkeylock, AuthCode, OrdNum, TotalFee,inbody,@outinf) &&第二代函数
DO case
CASE result=0
thisform.text4.Value="微信支付单号‘"+OrdNum+ "’支付成功!,API接口返回信息:"+sys(2600,outinf,1000)
answ=MESSAGEBOX("微信支付单号‘"+OrdNum+ "’支付成功!是否要生成新的支付单号继续?",1+32+0,'警告')
IF answ=1
thisform.text1.value=ALLTRIM(str(YEAR(DATE())))+RIGHT(str(100+month(DATE())),2)+RIGHT(str(100+day(DATE())),2)+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+"00001"
thisform.text3.Value=""
thisform.text3.SetFocus
ENDIF
CASE result=1
thisform.text4.Value="微信支付单号‘"+OrdNum+ "’正在支付中...请稍后查询此单支付状态,API接口返回信息:"+sys(2600,outinf,1000)
OTHERWISE
thisform.text4.Value="微信支付单号‘"+OrdNum+ "’支付失败!,API接口返回信息:"+sys(2600,outinf,1000)
ENDCASE
thisform.command7.Enabled = .t.
thisform.command7.Caption ="微信付款码支付"
ENDIF
&&-------------------------------------------------------------------------------------------------
Lockappid = ALLTRIM(thisform.cont1.text1.Value) &&支付宝APPID
IF thisform.cont1.opg3.option2.Value =1 &®istered=1 APPID已加密授权 =0 原始APPID
registered=1
ELSE
registered=0
ENDIF
OrdNum=ALLTRIM(thisform.text1.Value)
TotalFee=ALLTRIM(STR(VAL(thisform.text2.Value)/100,10,2)) &&这个参数是元为单位,0.01为1分 钱
AuthCode=ALLTRIM(thisform.text3.Value)
inbody=ALLTRIM(thisform.text6.Value)
IF OrdNum<>""
messagebox("请输入APPID内的唯一订单编号!",0+16+0,'提示')
thisform.text1.SetFocus
return
ENDIF
IF LEN(AuthCode)<>18
messagebox("请扫描或输入有效的支付宝付款码!",0+16+0,'提示')
thisform.text3.SetFocus
return
ENDIF
answ=MESSAGEBOX(" 本次支付将从支付宝账号扣款,此扣款不能退回,确定要继续吗?",1+32+0,'警告')
IF answ=1
retuinf="正在进行支付宝付款码支付,请稍后..."+SPACE(1000)
outinf=VarPtr(retuinf)
thisform.text4.Value =""
thisform.command5.Enabled = .F.
thisform.command5.Caption ="正在支付中,请稍后..."
thisform.Refresh
DOEVENTS
&& result=ZhiFuBaoPayCodeEx1(Lockappid, AuthCode, OrdNum, TotalFee,inbody,@outinf) &&第一代函数
result=ZhiFuBaoPayCodeEx2(Lockappid,registered,AuthCode,OrdNum, TotalFee,inbody,@outinf) &&第二代函数
DO case
CASE result=0
thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’支付成功!"+sys(2600,outinf,1000)
answ=MESSAGEBOX("支付宝支付单号‘"+OrdNum+ "’支付成功!是否要生成新的支付单号继续?",1+32+0,'警告')
IF answ=1
thisform.text1.value=ALLTRIM(str(YEAR(DATE())))+RIGHT(str(100+month(DATE())),2)+RIGHT(str(100+day(DATE())),2)+SUBSTR(TIME(),1,2)+SUBSTR(TIME(),4,2)+SUBSTR(TIME(),7,2)+"00001"
thisform.text3.Value=""
thisform.text3.SetFocus
ENDIF
CASE result=1
thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’正在支付中...请稍后查询此单支付状态,API接口返回信息:"+sys(2600,outinf,1000)
OTHERWISE
thisform.text4.Value="支付宝支付单号‘"+OrdNum+ "’支付失败!API接口返回信息:"+sys(2600,outinf,1000)
ENDCASE
thisform.command5.Enabled = .t.
thisform.command5.Caption ="支付宝付款码支付"
ENDIF