Lockappid = ALLTRIM(thisform.cont1.text2.Value)     &&微信公众号

Lockmchid = ALLTRIM(thisform.cont1.text3.Value)     &&商户号

IF thisform.cont1.opg3.option2.Value =1             &&registered=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                    &&registered=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